43 43
chocho

Armbian for Amlogic S912

Recommended Posts

@balbes150, on your latest images for 905x / 5.24.

sudo modprobe cfg80211
sudo modprobe dhd
               dhd_bus_devreset: == WLAN ON ==
[  482.888058] F1 signature read @0x18000000=0x15264345
[  482.891391] F1 signature OK, socitype:0x1 chip:0x4345 rev:0x6 pkg:0x2
[  482.892072] DHD: dongle ram size is set to 819200(orig 819200) at 0x198000
[  482.892502] dhd_conf_read_nv_by_chip: nv_by_chip_count=1
[  482.892511] dhd_conf_read_nv_by_chip: chip=0xa962, chiprev=1, name=nvram_ap6210.txt
[  482.892760] dhd_conf_set_fw_name_by_chip: firmware_path=/lib/firmware/brcm/fw_bcm43455c0_ag.bin
[  482.892768] dhdsdio_download_firmware: set use_rxchain 0
[  482.892773] dhdsdio_download_firmware: set txglomsize 40
[  482.892780] sdioh_set_mode: set txglom_mode to multi-desc
[  482.892785] Final fw_path=/lib/firmware/brcm/fw_bcm43455c0_ag.bin
[  482.892790] Final nv_path=/lib/firmware/brcm/
[  482.892795] Final conf_path=/lib/firmware/brcm/config.txt
[  482.893250] dhdsdio_download_code_file: Open firmware file failed /lib/firmware/brcm/fw_bcm43455c0_ag.bin
[  482.893256] _dhdsdio_download_firmware: dongle image file download failed
[  482.893290] dhd_net_bus_devreset: dhd_bus_devreset: -35
[  482.893299] dhd_prot_ioctl : bus is down. we have nothing to do
[  482.893306] dhd_net_bus_devreset: dhd_bus_devreset: -35
[  482.893358] wifi_platform_set_power = 0
[  482.893365] ======== PULL WL_REG_ON LOW! ========
[  482.893370] wl_android_wifi_on: Failed
[  482.893376] dhd_open : wl_android_wifi_on failed (-35)
[  482.893383] dhd_stop: Enter ffffffc060c55800
[  482.893389] wl_android_wifi_off in 1
[  482.893394] wl_android_wifi_off in 2: g_wifi_on=0
[  482.893399] wl_android_wifi_off out
[  482.893404] dhd_stop: Exit
[  482.893412] dhd_open: Exit ret=-1
[  482.894105] dhd_open: Enter ffffffc060c55800
[  482.894121]
               Dongle Host Driver, version 1.201.59.6 (r506368)
               Compiled in drivers/net/wireless/bcmdhd
[  482.894131] wl_android_wifi_on in 1
[  482.894137] wl_android_wifi_on in 2: g_wifi_on=0
[  482.894143] wifi_platform_set_power = 1
[  482.894148] ======== PULL WL_REG_ON HIGH! ========
[  482.894171] aml_wifi wifi.33: [extern_wifi_set_enable] WIFI  Disable! 240
[  483.094200] aml_wifi wifi.33: [extern_wifi_set_enable] WIFI  Enable! 240
[  483.594991] sdio_reset_comm():
[  483.623129] sdio: queuing unknown CIS tuple 0x80 (2 bytes)
[  483.625767] sdio: queuing unknown CIS tuple 0x80 (3 bytes)
[  483.628392] sdio: queuing unknown CIS tuple 0x80 (3 bytes)
[  483.633103] sdio: queuing unknown CIS tuple 0x80 (7 bytes)
[  483.726307] sdio: clk 200000000 SDR mode tuning start
[  483.726575] sdio: rx_tuning_result[0] = 10
[  483.726829] sdio: rx_tuning_result[1] = 10
[  483.727082] sdio: rx_tuning_result[2] = 10
[  483.727337] sdio: rx_tuning_result[3] = 10
[  483.727368] sdio: best_win_start =0, best_win_size =4
[  483.727376] sdio: sd_emmc_regs->gclock=0x1000245,sd_emmc_regs->gadjust=0x22000
[  483.727384] sdio: gclock =0x1000245, gdelay=0x0, gadjust=0x22000
[  483.727440] sdioh_start: set sd_f2_blocksize 128
[  483.727811]


               dhd_bus_devreset: == WLAN ON ==
[  483.728000] F1 signature read @0x18000000=0x15264345
[  483.731325] F1 signature OK, socitype:0x1 chip:0x4345 rev:0x6 pkg:0x2
[  483.732007] DHD: dongle ram size is set to 819200(orig 819200) at 0x198000
[  483.732443] dhd_conf_read_nv_by_chip: nv_by_chip_count=1
[  483.732452] dhd_conf_read_nv_by_chip: chip=0xa962, chiprev=1, name=nvram_ap6210.txt
[  483.732702] dhd_conf_set_fw_name_by_chip: firmware_path=/lib/firmware/brcm/fw_bcm43455c0_ag.bin
[  483.732710] dhdsdio_download_firmware: set use_rxchain 0
[  483.732716] dhdsdio_download_firmware: set txglomsize 40
[  483.732722] sdioh_set_mode: set txglom_mode to multi-desc
[  483.732727] Final fw_path=/lib/firmware/brcm/fw_bcm43455c0_ag.bin
[  483.732732] Final nv_path=/lib/firmware/brcm/
[  483.732737] Final conf_path=/lib/firmware/brcm/config.txt
[  483.733191] dhdsdio_download_code_file: Open firmware file failed /lib/firmware/brcm/fw_bcm43455c0_ag.bin
[  483.733198] _dhdsdio_download_firmware: dongle image file download failed
[  483.733232] dhd_net_bus_devreset: dhd_bus_devreset: -35
[  483.733241] dhd_prot_ioctl : bus is down. we have nothing to do
[  483.733247] dhd_net_bus_devreset: dhd_bus_devreset: -35
[  483.733300] wifi_platform_set_power = 0
[  483.733306] ======== PULL WL_REG_ON LOW! ========
[  483.733312] wl_android_wifi_on: Failed
[  483.733319] dhd_open : wl_android_wifi_on failed (-35)
[  483.733327] dhd_stop: Enter ffffffc060c55800
[  483.733332] wl_android_wifi_off in 1
[  483.733337] wl_android_wifi_off in 2: g_wifi_on=0
[  483.733342] wl_android_wifi_off out
[  483.733347] dhd_stop: Exit
[  483.733355] dhd_open: Exit ret=-1

Share this post


Link to post
Share on other sites
WiFi is now working on GT1.
 
1. Download & Copy AP6255 WiFi drivers extracted from Beelink's Android image:
 
2. Load WiFi kernel modules
 
2.1. Manually
modprobe cfg80211
modprobe dhd firmware_path=/lib/firmware/ap6255/fw_bcm43455c0_ag.bin nvram_path=/lib/firmware/ap6255/nvram.txt

2.2. On boot

# /etc/modules
cfg80211
dhd
# /etc/modprobe.d/options.conf
options dhd firmware_path=/lib/firmware/ap6255/fw_bcm43455c0_ag.bin nvram_path=/lib/firmware/ap6255/nvram.txt

SCAN

root@amlogic-s905x:~# iwlist wlan0 scan
wlan0     Scan completed :
          Cell 01 - Address: XX:54:XX:FA:C8:XX
                    ESSID:"SSID_NAME"
                    Mode:Managed

Connect to SSID with nmcli

nmcli dev wifi connect NETWORK_SSID password NETWORK_PASSWD

DMESG

              dhd_bus_devreset: == WLAN ON ==
[  149.800463] F1 signature read @0x18000000=0x15264345
[  149.806417] F1 signature OK, socitype:0x1 chip:0x4345 rev:0x6 pkg:0x2
[  149.807102] DHD: dongle ram size is set to 819200(orig 819200) at 0x198000
[  149.807543] dhd_conf_read_config: kso_enable = 0
[  149.807633] dhd_conf_set_fw_name_by_chip: firmware_path=/lib/firmware/ap6255/fw_bcm43455c0_ag.bin
[  149.807641] dhdsdio_download_firmware: set use_rxchain 0
[  149.807647] dhdsdio_download_firmware: set txglomsize 40
[  149.807653] sdioh_set_mode: set txglom_mode to multi-desc
[  149.807659] Final fw_path=/lib/firmware/ap6255/fw_bcm43455c0_ag.bin
[  149.807664] Final nv_path=/lib/firmware/ap6255/nvram.txt
[  149.807669] Final conf_path=/lib/firmware/ap6255/config.txt
[  149.861058] NVRAM version: AP6255_NVRAM_V1.0_29052015
[  149.861683] dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
[  149.939601] dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)
[  149.939765] bcmsdh_oob_intr_register: Enter
[  149.939769] bcmsdh_oob_intr_register: HW_OOB enabled
[  149.939773] bcmsdh_oob_intr_register OOB irq=100 flags=414
[  149.939802] bcmsdh_oob_intr_register: enable_irq_wake
[  149.939808] bcmsdh_oob_intr_register: enable_irq_wake failed with -6
[  149.940733] dhd_conf_set_fw_int_cmd: set WLC_SET_BAND 142 0
[  149.941361] dhd_preinit_ioctls: Set tcpack_sup_mode 0
[  149.943237] Firmware up: op_mode=0x0005, MAC=44:2c:05:4b:5b:49
[  149.943243] dhd_conf_set_country: set country ALL, revision 38
[  149.943248] dhd_conf_set_fw_string_struct_cmd: set country
[  149.943581] CONFIG-ERROR) dhd_conf_set_fw_string_struct_cmd: country setting failed -2
[  149.947523] Country code: US (US/0)
[  149.947863] dhd_conf_set_fw_string_cmd: set roam_off 1
[  149.949492] dhd_conf_set_fw_string_cmd: set txbf 1
[  149.949947] CONFIG-ERROR) dhd_conf_set_fw_string_cmd: txbf setting failed -23
[  149.959389] Firmware version = wl0: Aug 25 2015 18:58:57 version 7.45.69 (r581703) FWID 01-24037f6e
[  149.959398]   Driver: 1.201.59.6 (r506368)
                 Firmware: wl0: Aug 25 2015 18:58:57 version 7.45.69 (r581703) FWID 01-24037f6e
[  149.959611] dhd_txglom_enable: enable 1
[  149.959616] dhd_conf_set_txglom_params: swtxglom=0, txglom_ext=0
[  149.959620] dhd_conf_set_txglom_params: txglom_bucket_size=0
[  149.959624] dhd_conf_set_txglom_params: txglomsize=40, deferred_tx_len=40, bus_txglom=0
[  149.959628] dhd_conf_set_txglom_params: tx_in_rx=1, tx_max_offset=0
[  149.959632] dhd_conf_set_disable_proptx: set disable_proptx 0
[  149.960335] dhd_wlfc_hostreorder_init(): successful bdcv2 tlv signaling, 64
[  149.960826] wl_android_wifi_on: Success
[  150.018061] dhd_open: Exit ret=0
[  150.140579] P2P interface registered
[  150.153519] WLC_E_IF: NO_IF set, event Ignored
[  150.154635] P2P interface started
[  182.422348] dhd_module_cleanup: Enter
[  182.422393] sdioh_remove: Enter
[  182.422398] dhdsdio_disconnect : no mutex held. set lock
[  182.430336] dhdsdio_dpc: Bus down, ret
[  182.430350] bcmsdh_oob_intr_unregister: Enter
[  182.430364] dhd_wlfc_deinit():3301, Already disabled!
[  182.490019] dhd_stop: Enter ffffffc05119b000
[  182.490026] wl_android_wifi_off in 1
[  182.490030] wl_android_wifi_off in 2: g_wifi_on=1
[  182.490036] dhd_prot_ioctl : bus is down. we have nothing to do
[  182.490118] bcmsdh_oob_intr_unregister: Enter
[  182.490128] bcmsdh_oob_intr_unregister: irq is not registered
[  182.490143] dhd_txglom_enable: enable 0
[  182.490150] dhd_conf_set_txglom_params: swtxglom=0, txglom_ext=0
[  182.490156] dhd_conf_set_txglom_params: txglom_bucket_size=0
[  182.490162] dhd_conf_set_txglom_params: txglomsize=0, deferred_tx_len=0, bus_txglom=0
[  182.490168] dhd_conf_set_txglom_params: tx_in_rx=1, tx_max_offset=0
[  182.490175] dhd_bus_devreset:  WLAN OFF DONE
[  182.490240] wifi_platform_set_power = 0
[  182.490247] ======== PULL WL_REG_ON LOW! ========
[  182.490252] wl_android_wifi_off out
[  182.490258] dhd_stop: Exit
[  182.570103] dhd_detach(): thread:dhd_watchdog_thread:ee1 terminated OK
[  182.570165] dhd_detach(): thread:dhd_rxf:ee3 terminated OK
[  182.570188] dhd_dpc_thread: Unexpected up_cnt 0
[  182.570211] dhd_detach(): thread:dhd_dpc:ee2 terminated OK
[  182.571711] P2P interface unregistered
[  182.571746] wl_event_handler: was terminated
[  182.571944] wl_destroy_event_handler(): thread:wl_event_handler:ee0 terminated OK
[  182.799988] dhd_tcpack_suppress_set 376: already set to 0
[  182.800006] dhd_os_prealloc: failed to alloc memory, section: 7, size: 0bytes
[  182.800031] dhdsdio_disconnect : the lock is released.
[  182.800275] unregister wifi platform drivers
[  182.800283] wifi_platform_bus_enumerate device present 0
[  182.800289] ======== Card detection to remove SDIO card! ========
[  182.800315] aml_wifi wifi.33: [extern_wifi_set_enable] WIFI  Disable! 240
[  183.000404] dhd_module_cleanup: Exit

Share this post


Link to post
Share on other sites

 

@balbes : What's the next step for S912 ? Is there somethings we can do to help ?

I've run your last version successfully ( ubuntu desktop 161227), but I got poor performance in decoding video.  

Share this post


Link to post
Share on other sites

@balbes150,

 

Your latest image is working on eMMC, but ethernet has stopped to work.

 

On install.sh I tried to set IMAGE_DTB to the .dtb file I extracted and published in this thread for GT1, it is not giving any more errors during the script run, but ethernet is not working anymore.

 

This dtb files are causing a general confusion on the users.

 

Best,

Luiz.

Share this post


Link to post
Share on other sites

@balbes : What's the next step for S912 ? Is there somethings we can do to help ?

I've run your last version successfully ( ubuntu desktop 161227), but I got poor performance in decoding video.  

 

If You really want to help the project, it will be useful to build deb packages with the latest versions of KODI, codecs, modules for WiFi and BT Ubuntu\Debian.

 

 

@balbes150,

 

Your latest image is working on eMMC, but ethernet has stopped to work.

 

On install.sh I tried to set IMAGE_DTB to the .dtb file I extracted and published in this thread for GT1, it is not giving any more errors during the script run, but ethernet is not working anymore.

 

This dtb files are causing a general confusion on the users.

 

Best,

Luiz.

 

What version images network work ? What dtb was used ? Without a separate dtb files can not do, is features of this platform. It is impossible to make one universal file.

Share this post


Link to post
Share on other sites

@balbes150,

 

Armbian_5.24_Amlogic-s905x_Ubuntu_xenial_3.14.29_desktop_20161125.img.xz has ethernet working, wifi not working.

 

Armbian_5.24_Amlogic-s905x_Ubuntu_xenial_3.14.29_20161223.img.xz has wifi working, ethernet not working.

 

I'm using the 2g DTB file that I have extracted from Android (more details on this post):

https://dl.dropboxusercontent.com/u/11164079/GT1/beelink_gt1.tar.gz

Share this post


Link to post
Share on other sites

If You really want to help the project, it will be useful to build deb packages with the latest versions of KODI, codecs, modules for WiFi and BT Ubuntu\Debian.

This will probably sound pretty dumb question, but why can't we use the official kernel for arm64 ?

For exemple from here : http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.1/

And deb packages from here : https://launchpad.net/ubuntu/xenial/arm64 

(Not for kodi, it seems that we need version 17 https://launchpad.net/~team-xbmc/+archive/ubuntu/xbmc-nightly?)

Share this post


Link to post
Share on other sites

This will probably sound pretty dumb question, but why can't we use the official kernel for arm64 ?

For exemple from here : http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.1/

And deb packages from here : https://launchpad.net/ubuntu/xenial/arm64 

(Not for kodi, it seems that we need version 17 https://launchpad.net/~team-xbmc/+archive/ubuntu/xbmc-nightly?)

1. Once in mainline realize full support amlogic soc...

2. There is amd64 and i386 pre builds in official repo. For kodi.

Share this post


Link to post
Share on other sites

This will probably sound pretty dumb question, but why can't we use the official kernel for arm64 ?

For exemple from here : http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.1/

And deb packages from here : https://launchpad.net/ubuntu/xenial/arm64 

(Not for kodi, it seems that we need version 17 https://launchpad.net/~team-xbmc/+archive/ubuntu/xbmc-nightly?)

Actually, I don't mind trying ubuntu 4.9.1 kernel and modules, you could do same.

In fact I may also want to try  aarch64 7.0.3.012 LE kernel and modules.

For me if I can ssh into the box it is fine, fine for my gentoo experiments ...

Keep you informed 

Share this post


Link to post
Share on other sites

Actually, I don't mind trying ubuntu 4.9.1 kernel and modules, you could do same.

In fact I may also want to try  aarch64 7.0.3.012 LE kernel and modules.

For me if I can ssh into the box it is fine, fine for my gentoo experiments ...

Keep you informed 

I've download it, resized the boot partition (too small when installing another kernel), but I don't know how to tell the box to boot on another kernel....

Share this post


Link to post
Share on other sites

This will probably sound pretty dumb question, but why can't we use the official kernel for arm64 ?

For exemple from here : http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.1/

And deb packages from here : https://launchpad.net/ubuntu/xenial/arm64 

(Not for kodi, it seems that we need version 17 https://launchpad.net/~team-xbmc/+archive/ubuntu/xbmc-nightly?)

 

1. In the official kernels not fully support all features Amlogic. You need to apply patches. To create a patch, you need to have a lot of information (about the features of the new kernel + features Amlogic iron and the periphery).

2. Packages can be used. But they may lack specificity for Amlogic (TV boxes).

3. My images use a binding mount points to the labels sections. This allows you to easily resize the partitions, their location and so on. You can connect this device to a PC and using gpartd to easily change the size of the BOOT or ROOTFS. You can create a new carrier of your partitions and just copy the data from current to new. By the way, mark, it is similar to UUID , just easy to remember and use a person. The UUID is the same label, generated automatically by the system (from a set of meaningless and not understandable, hard-to-remember human characters). UUID makes sense to use only in very large distributed systems that are created and managed by the system (clusters, large disk arrays of 10 or more, etc.), where used automatic generation of sections and auto mounted by the system itself.

Share this post


Link to post
Share on other sites

Ok thanks for the information ! It doesn't seems easy to do for a beginner like me. :-)

 

I bricked my box yesterday (bad sd card flash), so anyway I can't do much for now. 

Share this post


Link to post
Share on other sites

I've download it, resized the boot partition (too small when installing another kernel), but I don't know how to tell the box to boot on another kernel....

In general one needs to adjust initramfs and remake uInitrd for new kernel and modules.

I managed to do so for kernel built from 150balbes kernel amlogic git (for gentoo). But trying so for kernels I built from other repositories failed. But sure those must also one day succeed.

Share this post


Link to post
Share on other sites

I've seen that you released a new version :

 

S9xxx_4G_ICEWM_MATE_XFCE_LXDE_LXQT_20170122.img.xz

 

Is there something new for us in there ? :) 

 

S9xxx_4G_ICEWM_MATE_XFCE_LXDE_LXQT_20170122.img.xz

Share this post


Link to post
Share on other sites

This is a test image to evaluate performance of different DE.

 

 

 

Question to the owners of the models on the basis S912. Perhaps it makes sense to combine this theme and the theme s905\s905x ? I do not insist the decision is up to admins and owners.

Share this post


Link to post
Share on other sites

While the support of S912 is still WIP, and not very stable, I think it might be good to have to separated thread.

Once the support of S912 is as good as the s905, I think we can merge the topics, but it's only my opinion. 

Thanks for your help.

Share this post


Link to post
Share on other sites

@balbes150

 

I think you are doing an outstanding job, but I'm very confused about what efforts areas we need to focus on, how to build your images from scratch, what are the latest images available, how and if we are going to merge your efforts to armbian building system etc.

 

What do you think about these points?

Share this post


Link to post
Share on other sites

@balbes150

 

I think you are doing an outstanding job, but I'm very confused about what efforts areas we need to focus on, how to build your images from scratch, what are the latest images available, how and if we are going to merge your efforts to armbian building system etc.

 

What do you think about these points?

 

If You want to help with development - I welcome it. I hope any help would be useful.

Share this post


Link to post
Share on other sites

Just to check and know your thoughts :

 

--Was already tested the official Kernel from Amlogic?

 

Amlogic openlinux

>> http://openlinux.amlogic.com/

 

buildroot-2016-09-30

>> http://openlinux.amlogic.com/wiki/index.php/Arm/Buildroot/buildroot-2016-09-30

 

 

-- What about the Amlogic instructions support from the news:

 

Amlogic Releases Linux 3.14 Source Code for S905X, S905D, and S912

Processors, Has Started Working on Linux 4.4 / Android 7.0

 

>> http://www.cnx-software.com/2016/08/19/amlogic-releases-linux-3-14-source-code-for-s905x-s905d-and-s912-processors-has-started-working-on-linux-4-4-android-7-0/

 

 

Thanks for your comments!

Share this post


Link to post
Share on other sites

Amlogic Releases Linux 3.14 Source Code for S905X, S905D, and S912

Processors, Has Started Working on Linux 4.4 / Android 7.0

 

Uhm, the wording is a bit different on CNX-software's web-site:

 

the company appears to have started working on Linux 4.4 likely for future support for Android 7.0

 

 

Those are two important words, even though they do not look important on their own.  ;)

 

I believe that Amlogic's openness is the reason that for the focus is not on - for instance Rockchip based devices.

If you ask me, Amlogic is a company which I like better for two reasons:

1: They like customers (I've been in dialogue directly with them and they did not dismiss me like both Allwinner and Rockchip did).

2: They made a lot of developer resources public, which the other mentioned two companies did not.

 

-Secrecy is not the path to great success.

 

Quoting Thomas: "Armbian is not a distribution, it's a set of scripts". In other words: Armbian is a build-system.

The way I understand Armbian is that it's not about getting "A" Linux working on a device, but to make the build-system in such a clean way that it can be extended (with the necessary discipline) so it does not get "out of hands".

 

... But this is getting slightly off-topic, so I propose a new thread, in order to keep this thread clean.  :)

Share this post


Link to post
Share on other sites

Thanks for your comments @Jens Bauer

 

I'm still waiting for my Mecool BB2 to start to work with the Armbian and Amlogic support.

 

That's why I want to know if the Amlogic repository Kernel support was checked or integrated by the Armbian group. What's the current differences?

 

This answer still is not clear to me..

 

Sorry if I'm doing silly questions :)

Share this post


Link to post
Share on other sites

@balbes150,

 

Armbian_5.24_Amlogic-s905x_Ubuntu_xenial_3.14.29_desktop_20161125.img.xz has ethernet working, wifi not working.

 

Armbian_5.24_Amlogic-s905x_Ubuntu_xenial_3.14.29_20161223.img.xz has wifi working, ethernet not working.

 

I'm using the 2g DTB file that I have extracted from Android (more details on this post):

https://dl.dropboxusercontent.com/u/11164079/GT1/beelink_gt1.tar.gz

 

There is a request. Try to replace this image

Armbian_5.24_Amlogic-s905x_Ubuntu_xenial_3.14.29_20161223.img.xz

file s905_autoscript on the same file from this link. Delete media file "dtb.img" and try to run it. I'm interested in will work wired network or not.

 

https://yadi.sk/d/kZHc0uQE34z5jR

 

 

P.S.

To my surprise , I now have a model with S912 to test and debug Linux. :)

http://freaktab.com/forum/tv-player-support/amlogic-based-tv-players/s912/606414-tronsmart-s96-android-6-0-amlogic-s912-4k-tv-box-2g-16g-ac-wifi-bluetooth-1000m-lan-kodi?p=626159#post626159

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
43 43