Author Topic: Update: C1000 / Akita support  (Read 11890 times)

greguu

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 393
    • View Profile
    • http://github.com/greguu
Update: C1000 / Akita support
« on: May 27, 2017, 03:40:42 am »
Hi,

as you may know, current 3.10.y and previous 3.x kexecboot kernels fail to boot on C1000 / Akita.

There is a workaround to boot the latest 4.12-rc1 kernel on Akita by using a 2.6.26 based kexecboot kernel that supports kexecboot 0.6.

If you are an C1000/Akita owner and would like to try ArchLinux ARM on your Zaurus, please follow the below steps:

- Prepare a SD card with the latest C3x00 rootfs (yes, it will work on C1000 once you change your kexecboot kernel)
   - For more information see : https://www.oesf.org/forum/index.php?showtopic=34421
   - Install Guide : https://github.com/greguu/ZALARM-install (Note: This guide needs updating, please share your experience and ask in this thread for help if needed)
   - Make sure you format your SD card with ext3!

- Flash the 2.6.26 based "frankenstein" kexecboot kernel. (Experimental release)
   - See the linux-2.6.26-c1000-frankenstein.tar.gz attached.
   - This kernel does allow booting to ext2/3 only. There is NO support for ext4 or F2FS. If you like to use a ext4 or F2FS for root, you need to create a seperate ext3 /boot parition
   - This kernel features kexecboot 0.6 and does recognize the recent boot.cfg format.

- Enter the SD card and boot into Arch Linux ARM.
  - Note: There may be unforeseen issues with C1000 / Akita. This is an experimental test release.
  - Please advise of any issues in this thread. We need some Akita testers !


Hopefully we can get an unified kexecboot kernel for all Cxx00 series Zaurus soon. In the meantime this is the only workaround for C1000 users.

Cheers!
« Last Edit: June 09, 2017, 03:12:59 am by greguu »
Gemini-PDA (Stock Android) / LG Nexus 5 (Sailfish OS) / Nokia N9 (MeeGo/Harmattan)
Sharp Zaurus C3100 (Borzoi) - Void Linux (voidz) Kernel 5.0.0 - Hardware (Buffalo CF LAN, DLink 660 CF WiFi, ASIX AX88772 USB Ethernet)

Varti

  • Administrator
  • Hero Member
  • *****
  • Posts: 1085
    • View Profile
Update: C1000 / Akita support
« Reply #1 on: June 08, 2017, 05:22:22 am »
I have done some tests in the past days on my Akita, these are my results so far.

I have successfully booted the latest Alarmz rootfs on an ext3 partition by installing the 2.6 based kexecboot, and I have also managed to boot the rootfs from an ext4 partition. Since the 2.6 based kexec doesn't support neither ext4 nor f2fs partitions, I created a small ext3 partition on my SD and installed the latest 3.10 kexec on it. So, I was basically booting kexec 2.6, manually selecting kexec 3.10, and using this kexec I booted Alarmz. Now I'd like to avoid having to run two kexecs in succession, so I have followed greguu's advice and used the latest 4.12 kernel in the first partition instead of kexec, and I also changed the rootfs partition from ext4 to the new f2fs. So basically I have repartitioned my 64GB SD to 3 primary partitions:
- a 10MB ext3 one, with a boot/ directory containing the latest 4.12 kernel and a modified boot.cfg, see below
- a 48GB f2fs one with the rootfs
- a swap partition
I have left some free space at the end of the SD card, so that if the swap partition becomes corrupted due to wearing, I'll move it to the next free space on the card.

BTW, I have found that the kernel is found and booted by kexec also if it is copied in the root directory and renamed to zImage. Unfortunately, this way the boot.cfg file isn't recognised (neither by placing it in the root directory, on inside boot/), so the boot stops at one point since the root partition can't be found.
In order to point the kernel to the root partition on sda2, I have set the "root=" parameter inside boot.cfg to my root partition, i.e. /dev/mmcblk0p2. Greguu has also suggested that adding a real_root parameter and setting it to the root partition should work, too. Apparently, real_root isn't a valid kernel parameter, it is actually a script which changes the root partition once it is already booted, and this requires initrd to be used:

https://unix.stackexchange.com/questions/16...root-and-cdroot

Alarmz uses noinitrd as a parameter, so I believe this solution won't work, although I haven't tried it.
I have also seen that the rootfs won't boot if /dev/sda2 is set in boot.cfg instead of /dev/mmcblk0p2, an "Unable to mount root fs on unknown-block(0,2)" error is shown. The reason might be that, at that point, sda2 isn't mounted yet.

Using this configuration I have managed to boot the rootfs on the f2fs partition. Unfortunately, I have managed to do this only once. Every other attempt to boot it again fails: the Arch Linux ARM logo is shown, but no log text is displayed at all, even after 10 minutes. The system is not freezed, since it is possible to type any text in this state, but there are no errors displayed when return is pressed, only the typed text is shown. The reason might be that I have used "halt" in order to switch off my Akita, but this command has failed, since the shell was still displayed although no more commands could be entered, so I had to unplug the power supply and remove the battery. This command might have left the filesystem to a corrupted state, so next time I'll try to run a fsck on the partition, and/or to delete and create again the filesystem, I'll report back. From what I have read in the other threads, "poweroff" seems to be the only reliable way to switch off the device.

In the meanwhile I have also tested two new beta kexec binaries for Akita provided by ant, based on the 3.10 and 3.2 kernels, but they both refuse to boot, it seems that they have to be compiled using specific gcc versions.

One last question, is the 2.6 kexec in the attachment the same as the one here?
https://github.com/greguu/linux-3.10.y-c3x0...xec-r0/releases
I guess it is, I just wanted to confirm this.

More news will follow.

Varti
Planet Gemini PDA WiFi/LTE with Mediatek x27
SL-C1000 running Arch Linux ARM May2017, K30225 Wi-Fi CF Card, 64GB SDXC card
and many other Zauruses!

Varti

  • Administrator
  • Hero Member
  • *****
  • Posts: 1085
    • View Profile
Update: C1000 / Akita support
« Reply #2 on: June 08, 2017, 08:59:02 pm »
I have found the culprit, I have modified the root label in boot.cfg but I have misspelled /dev/mmcblk0p2, silly me. Now the system boots everytime, and it seems to be stable.
I have successfully activated the swap partition, I'm now trying to locally install wireless_tools-30.pre9-1-arm.pkg.tar.xz but it's always failing ("could not lock database: read-only file system"), even if I try it under su, since the f2fs filesystem is mounted as read-only. I have changed my /etc/fstab as follows:
Code: [Select]
/dev/mmcblk0p2           /               f2fs     rw,noatime,nodiratime,commit=600,reservation,defaults 0 1but with no avail, any hint?

Varti
Planet Gemini PDA WiFi/LTE with Mediatek x27
SL-C1000 running Arch Linux ARM May2017, K30225 Wi-Fi CF Card, 64GB SDXC card
and many other Zauruses!

greguu

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 393
    • View Profile
    • http://github.com/greguu
Update: C1000 / Akita support
« Reply #3 on: June 09, 2017, 02:57:30 am »
Quote from: Varti
I have found the culprit, I have modified the root label in boot.cfg but I have misspelled /dev/mmcblk0p2, silly me. Now the system boots everytime, and it seems to be stable.
I have successfully activated the swap partition, I'm now trying to locally install wireless_tools-30.pre9-1-arm.pkg.tar.xz but it's always failing ("could not lock database: read-only file system"), even if I try it under su, since the f2fs filesystem is mounted as read-only. I have changed my /etc/fstab as follows:
Code: [Select]
/dev/mmcblk0p2           /               f2fs     rw,noatime,nodiratime,commit=600,reservation,defaults 0 1but with no avail, any hint?

Varti


well, good, some progress!

f2fs needs some extra settings to work.

You created a seperate boot partition /dev/mmcblk0p1 with ext3 I assume ?

Then you have your main root on /dev/mmcblk0p2 with f2fs ?

It seems you changed the file system type in your fstab, but left some of the ext3/4 specific options. This may be the issue. (?)

Please share your complete fstab.

Can you share your complete boot.cfg, too ? Did you add swap to the fstab ?

Here is an example fstab that should work with 2.6 kexecboot and 4.12-rc1 kernel, booting from ext3 and setting root to f2fs:

Code: [Select]
#
# /etc/fstab: static file system information
#
#     
                
# /dev/sdb2
/dev/mmcblk0p2       /                f2fs           rw,relatime,background_gc=on,inline_data,extent_cache,active_logs=6    0 0

# /dev/sdb1
/dev/mmcblk0p1       /boot         ext3          rw,relatime,data=ordered  0 2
Gemini-PDA (Stock Android) / LG Nexus 5 (Sailfish OS) / Nokia N9 (MeeGo/Harmattan)
Sharp Zaurus C3100 (Borzoi) - Void Linux (voidz) Kernel 5.0.0 - Hardware (Buffalo CF LAN, DLink 660 CF WiFi, ASIX AX88772 USB Ethernet)

Varti

  • Administrator
  • Hero Member
  • *****
  • Posts: 1085
    • View Profile
Update: C1000 / Akita support
« Reply #4 on: June 09, 2017, 03:36:12 am »
Quote from: greguu
well, good, some progress!

f2fs needs some extra settings to work.

You created a seperate boot partition /dev/mmcblk0p1 with ext3 I assume ?

Then you have your main root on /dev/mmcblk0p2 with f2fs ?
Yes, that's how my SD is partitioned.

Quote
It seems you changed the file system type in your fstab, but left some of the ext3/4 specific options. This may be the issue. (?)

Please share your complete fstab.

Can you share your complete boot.cfg, too ? Did you add swap to the fstab ?
In my fstab I only have /dev/mmcblk0p2 defined, I haven't added the swap partition yet to it, I only mounted it manually. Here's the complete fstab:
Code: [Select]
#
# /etc/fstab: static file system information
#
#     
                
/dev/mmcblk0p2           /               f2fs     rw,noatime,nodiratime,commit=600,reservation,defaults 0 1
# Use /dev/sda1 for first partition on microdrive
and my boot.cfg in mmcblk0p1 (I have left the one in mmcblk0p2 untouched since I believe it is not being used):
Code: [Select]
LABEL=ArchLinuxARM
KERNEL=/boot/zImage-4.12.0-rc1-c3x00-r0
APPEND=root=/dev/mmcblk0p2 rootfstype=f2fs fbcon=rotate:1 noinitrd loglevel=3

Quote
Here is an example fstab that should work with 2.6 kexecboot and 4.12-rc1 kernel, booting from ext3 and setting root to f2fs:

Code: [Select]
#
# /etc/fstab: static file system information
#
#     
                
# /dev/sdb2
/dev/mmcblk0p2       /                f2fs           rw,relatime,background_gc=on,inline_data,extent_cache,active_logs=6    0 0

# /dev/sdb1
/dev/mmcblk0p1       /boot         ext3          rw,relatime,data=ordered  0 2
I see the partition options are different, I'll try them and see if they work.

Varti
Planet Gemini PDA WiFi/LTE with Mediatek x27
SL-C1000 running Arch Linux ARM May2017, K30225 Wi-Fi CF Card, 64GB SDXC card
and many other Zauruses!

Varti

  • Administrator
  • Hero Member
  • *****
  • Posts: 1085
    • View Profile
Update: C1000 / Akita support
« Reply #5 on: June 12, 2017, 08:42:49 am »
Hi,

I have modified the fstab entry as you suggested, the root partition is now correctly mounted as read/write, thanks for the help. I'll later take a look at the parameters to eventually tweak them.

Regarding the wifi connection, I have successfully installed by hand both wireless_tools and hostapd, I have tried for a couple of times to connect to my smartphone, configured as a tethered modem, without success, though I have done the tests in a hurry so I need to do some more tests, I'll report back later.

I have attached here, as requested, two outputs of the "journalctl -xe" command; the second has been done after my first wifi connection attempts, I have included both just in case. You'll see many "corgi-lcd spi2.1: failed to request GPIO207 for backlight_on" error messages, and there are some more messages regarding backlighting, please let me know if you need more tests.

Varti
Planet Gemini PDA WiFi/LTE with Mediatek x27
SL-C1000 running Arch Linux ARM May2017, K30225 Wi-Fi CF Card, 64GB SDXC card
and many other Zauruses!

greguu

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 393
    • View Profile
    • http://github.com/greguu
Update: C1000 / Akita support
« Reply #6 on: July 27, 2017, 02:18:04 am »
Quote from: Varti
Hi,

I have modified the fstab entry as you suggested, the root partition is now correctly mounted as read/write, thanks for the help. I'll later take a look at the parameters to eventually tweak them.

Regarding the wifi connection, I have successfully installed by hand both wireless_tools and hostapd, I have tried for a couple of times to connect to my smartphone, configured as a tethered modem, without success, though I have done the tests in a hurry so I need to do some more tests, I'll report back later.

I have attached here, as requested, two outputs of the "journalctl -xe" command; the second has been done after my first wifi connection attempts, I have included both just in case. You'll see many "corgi-lcd spi2.1: failed to request GPIO207 for backlight_on" error messages, and there are some more messages regarding backlighting, please let me know if you need more tests.

Varti

Apart from these errors , do you experience any issues with the backlight  ? Can you suspend/resume and does the backlight turn off after some time ?

The errors indicate that some GPIO is not found. This may be related to the kernel or systemd. Difficult to troubleshoot for me without a C1000. Maybe Ant knows more about GPIO207 and Akita.
Gemini-PDA (Stock Android) / LG Nexus 5 (Sailfish OS) / Nokia N9 (MeeGo/Harmattan)
Sharp Zaurus C3100 (Borzoi) - Void Linux (voidz) Kernel 5.0.0 - Hardware (Buffalo CF LAN, DLink 660 CF WiFi, ASIX AX88772 USB Ethernet)

slaanesh

  • Newbie
  • *
  • Posts: 16
    • View Profile
    • http://www.slaanesh.net/
Update: C1000 / Akita support
« Reply #7 on: July 27, 2017, 08:12:28 pm »
I also have an SL-C1000 and would be interested in getting ALARM going on my Zaurus. I will try the above procedure and report back once complete.

Varti

  • Administrator
  • Hero Member
  • *****
  • Posts: 1085
    • View Profile
Update: C1000 / Akita support
« Reply #8 on: July 28, 2017, 04:46:05 am »
Quote from: greguu
Apart from these errors , do you experience any issues with the backlight  ? Can you suspend/resume and does the backlight turn off after some time ?

The errors indicate that some GPIO is not found. This may be related to the kernel or systemd. Difficult to troubleshoot for me without a C1000. Maybe Ant knows more about GPIO207 and Akita.
Thanks for your help, this evening I should have some free time to make more tests on the back-lightning and wifi issues.

@slaanesh
Welcome!

Varti
Planet Gemini PDA WiFi/LTE with Mediatek x27
SL-C1000 running Arch Linux ARM May2017, K30225 Wi-Fi CF Card, 64GB SDXC card
and many other Zauruses!

slaanesh

  • Newbie
  • *
  • Posts: 16
    • View Profile
    • http://www.slaanesh.net/
Update: C1000 / Akita support
« Reply #9 on: August 13, 2017, 07:49:14 am »
Okay I have installed ALARM on both an SL-C1000 and SL-C3000.
The minimal installs on both look great so far - I haven't had a chance to do much else.
I get the GPIO207 issue as above re: backlight_on.

Is there anything you want me to test out or try?
I'm only using an EXT3 FS.

So far so good! Thanks for your efforts with this.
« Last Edit: August 13, 2017, 07:50:06 am by slaanesh »

Varti

  • Administrator
  • Hero Member
  • *****
  • Posts: 1085
    • View Profile
Update: C1000 / Akita support
« Reply #10 on: August 13, 2017, 02:47:25 pm »
Quote from: slaanesh
Is there anything you want me to test out or try?
If you have a Wifi card (CF or USB), it would be interesting to check if it works, especially on an SL-C1000.

Varti
Planet Gemini PDA WiFi/LTE with Mediatek x27
SL-C1000 running Arch Linux ARM May2017, K30225 Wi-Fi CF Card, 64GB SDXC card
and many other Zauruses!

slaanesh

  • Newbie
  • *
  • Posts: 16
    • View Profile
    • http://www.slaanesh.net/
Update: C1000 / Akita support
« Reply #11 on: August 13, 2017, 05:09:47 pm »
Quote from: Varti
Quote from: slaanesh
Is there anything you want me to test out or try?
If you have a Wifi card (CF or USB), it would be interesting to check if it works, especially on an SL-C1000.

Varti
I only have a WiFi SD card but of course this won't work.

I would be happy and actually prefer USB networking.

Start g_ether automatically (does it do this by default?)
Code: [Select]
echo g_ether > /etc/modules-load.d/g_ether.confCreate a usb0 device for netctl:
Code: [Select]
vim /etc/netctl/usb0
Quote
Connection=ethernet
Description='Connection via USB'
Interface=usb0
IP=static
Address=('192.168.7.2/30')
Auto start on boot:
Code: [Select]
netctl enable usb0Start it:
Code: [Select]
ifconfig usb0 up
Doesn't seem to do anything on my Win7 box - but will try on my Mac OS X box later.

Should USB networking work?
« Last Edit: August 13, 2017, 11:27:13 pm by slaanesh »

slaanesh

  • Newbie
  • *
  • Posts: 16
    • View Profile
    • http://www.slaanesh.net/
Update: C1000 / Akita support
« Reply #12 on: August 13, 2017, 10:33:01 pm »
Just found a problem on the SL-C1000:

Some of capital letters only work with either the left or right shift key but not both.
ie. to get 'A' I have to use the right hand side 'shift' key. ie <rshift>+a, <lshift>+a doesn't work.

Capital 'S' is the opposite: I can only type it with the left 'shift' key. ie <lshift>+s, <rshift>+s doesn't work.

Caps lock always works.

Probably GPIO misconfiguration (assuming the keyboard is GPIO driven?).

greguu

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 393
    • View Profile
    • http://github.com/greguu
Update: C1000 / Akita support
« Reply #13 on: August 15, 2017, 02:26:06 am »
I noticed that too, I think this was introduced in the 4.12-rc1 kernel. Can you confirm that is the kernel you booted ? If yes, try the version below 4.9-rc3.

Quote from: slaanesh
Just found a problem on the SL-C1000:

Some of capital letters only work with either the left or right shift key but not both.
ie. to get 'A' I have to use the right hand side 'shift' key. ie <rshift>+a, <lshift>+a doesn't work.

Capital 'S' is the opposite: I can only type it with the left 'shift' key. ie <lshift>+s, <rshift>+s doesn't work.

Caps lock always works.

Probably GPIO misconfiguration (assuming the keyboard is GPIO driven?).
Gemini-PDA (Stock Android) / LG Nexus 5 (Sailfish OS) / Nokia N9 (MeeGo/Harmattan)
Sharp Zaurus C3100 (Borzoi) - Void Linux (voidz) Kernel 5.0.0 - Hardware (Buffalo CF LAN, DLink 660 CF WiFi, ASIX AX88772 USB Ethernet)

greguu

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 393
    • View Profile
    • http://github.com/greguu
Update: C1000 / Akita support
« Reply #14 on: August 15, 2017, 02:31:46 am »
I need to check, I have not used USB Ethernet driver for many years.

The feature was called USB gadget in the kernel that allows USB Ethernet on PXA27x.

You may need to load a module to get it to work as it is not auto loaded. gadget  "pxa27x_udc" should be name of the module.

CF WiFi , CF LAN and USB LAN adaptors are known to work with ArchLinuxARM.

Quote from: slaanesh
Quote from: Varti
Quote from: slaanesh
Is there anything you want me to test out or try?
If you have a Wifi card (CF or USB), it would be interesting to check if it works, especially on an SL-C1000.

Varti
I only have a WiFi SD card but of course this won't work.

I would be happy and actually prefer USB networking.

Start g_ether automatically (does it do this by default?)
Code: [Select]
echo g_ether > /etc/modules-load.d/g_ether.confCreate a usb0 device for netctl:
Code: [Select]
vim /etc/netctl/usb0
Quote
Connection=ethernet
Description='Connection via USB'
Interface=usb0
IP=static
Address=('192.168.7.2/30')
Auto start on boot:
Code: [Select]
netctl enable usb0Start it:
Code: [Select]
ifconfig usb0 up
Doesn't seem to do anything on my Win7 box - but will try on my Mac OS X box later.

Should USB networking work?
Gemini-PDA (Stock Android) / LG Nexus 5 (Sailfish OS) / Nokia N9 (MeeGo/Harmattan)
Sharp Zaurus C3100 (Borzoi) - Void Linux (voidz) Kernel 5.0.0 - Hardware (Buffalo CF LAN, DLink 660 CF WiFi, ASIX AX88772 USB Ethernet)