Reply
Thread Tools
Posts: 330 | Thanked: 556 times | Joined on Oct 2012
#3131
[QUOTE=Estel;1443280]
Originally Posted by malfunctioning View Post

Does anybody use an external keyboard with EasyDebian?/QUOTE]

Freemangordon's extkbd works best for most keyboards and ED's programs started inside Maemo, but completely fails inside any desktop environment run via ED.

Qole's bt--hd-scripts (or how was it called) works less reliably that extkbd, but works fine inside ED's desktop environments.

extkbd and bt-hd-scripts conflicts with each other (you have seen that one coming, haven't you?...)

/Estel
HAHA. Yes, you set that one up nicely and I did see it coming.

Thank you, Estel. In this case I would only be interested about using a keyboard inside LXDE, so from what you say things look promising.

My main goal is working with a bluetooth keyboard with integrated trackpad. I think I'll just have to get one and try. When that happens I'll report back.
 

The Following User Says Thank You to malfunctioning For This Useful Post:
Posts: 330 | Thanked: 556 times | Joined on Oct 2012
#3132
I kind of killed my main N900 (MyDocs even disappeared completely). I think it happened because of running xmaxima's test suite with a low battery. Or maybe I just punished the filesystem too much the past few days installing and running many big programs in EasyDebian

I flashed (eMMC + Combined), and still this didn't solve the issue of the missing /dev/mmcblk01p1 (aka MyDocs).

TestDisk didn't help much. I started gparted from my Ubuntu computer, and it would segfault when I tried to mess with the FAT32 partition (resize, move, etc). I finally converted the partition to ext3, and it seems that ext3 is more tolerant to errors than FAT32 (not surprisingly). From that, I converted again to FAT32, and flashed again, and then I could see MyDocs. Not sure about the logic involved in this, but something just changed.

Since I screwed the N900 so badly, I figured it was a good chance to rebuild from scratch, so with the help of a Gparted Live USB key (my Ubuntu Gparted still was giving me problems) now I have this partition setup:

1. FAT32 (MyDocs) 8GB
2. ext3 (/home) 8GB
3. Extended partition
4. ext3 logical (7GB) (EasyDebian partition #1)
5. ext3 logical (7GB) (EasyDebian partition #2)
6. Linux swap (as stock, 768MB)

So now I have 8GB to install Maemo programs, and 2 big ext3 partitions for EasyDebian. Probably will keep in one a stable configuration, and use the other for testing.

I haven't tested yet that EasyDebian will work by copying an image to one of these partitions, but I don't see why not.
 
Posts: 330 | Thanked: 556 times | Joined on Oct 2012
#3133
***UPDATE***
The MyDocs partition wasn't visible either from Windows 7.

I fired up the GParted Live USB drive again, and ran Check for Errors (which runs a fsck command on the drive) a couple times. Now, I see the drive again in Ubuntu. I restarted the N900 and that didn't hurt things.

I do know that TestDisk was reporting some I/O errors on the original FAT32 27GB volume, so let's see how reliable things are from now on.

Any ideas are welcome.
***END UPDATE***


Alright, so I ran into a problem. I connected the N900 in storage mode to my Ubuntu system, and now MyDocs can't be mounted. (Although if I use BackupMenu Storage r/w Mode, I can see all partitions including MyDocs just fine.

Also, I did a fsck -af /dev/mmcblk0p1 and I didn't get any errors.

I get this error message:

Code:
Error mounting /dev/sdb4 at /media/user/Nokia N900: Command-line `mount -t "vfat" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush" "/dev/sdb4" "/media/user/Nokia N900"' exited with non-zero exit status 32: mount: wrong fs type, bad option, bad superblock on /dev/sdb4,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so
And when I look into dmsg, here's what I get:

Code:
[ 3623.012193] usb 1-1: new high-speed USB device number 5 using ehci-pci
[ 3623.146093] usb 1-1: New USB device found, idVendor=0421, idProduct=01c8
[ 3623.146103] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3623.146110] usb 1-1: Product: N900 (PC-Suite Mode)
[ 3623.146116] usb 1-1: Manufacturer: Nokia
[ 3623.242912] NET: Registered protocol family 35
[ 3623.260476] cdc_acm 1-1:1.6: This device cannot do calls on its own. It is not a modem.
[ 3623.260594] cdc_acm 1-1:1.6: ttyACM0: USB ACM device
[ 3623.262362] usbcore: registered new interface driver cdc_acm
[ 3623.262365] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 3623.278644] usbcore: registered new interface driver cdc_phonet
[ 3623.282536] cdc_ether 1-1:1.8 usb0: register 'cdc_ether' at usb-0000:00:1a.7-1, CDC Ethernet Device, ee:59:6b:56:e3:b8
[ 3623.282867] usbcore: registered new interface driver cdc_ether
[ 3623.315357] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[ 3623.315487] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[ 3628.202846] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[ 3644.037304] usb 1-1: USB disconnect, device number 5
[ 3644.064237] cdc_ether 1-1:1.8 usb0: unregister 'cdc_ether' usb-0000:00:1a.7-1, CDC Ethernet Device
[ 3645.616180] usb 1-1: new high-speed USB device number 6 using ehci-pci
[ 3645.750987] usb 1-1: New USB device found, idVendor=0421, idProduct=01c7
[ 3645.750997] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3645.751005] usb 1-1: Product: N900 (Storage Mode)
[ 3645.751011] usb 1-1: Manufacturer: Nokia
[ 3645.751017] usb 1-1: SerialNumber: 372041756775
[ 3645.752696] usb-storage 1-1:1.0: USB Mass Storage device detected
[ 3645.752962] scsi5 : usb-storage 1-1:1.0
[ 3646.753688] scsi 5:0:0:0: Direct-Access     Nokia    N900              031 PQ: 0 ANSI: 2
[ 3646.754399] scsi 5:0:0:1: Direct-Access     Nokia    N900              031 PQ: 0 ANSI: 2
[ 3646.755233] sd 5:0:0:0: Attached scsi generic sg1 type 0
[ 3646.755761] sd 5:0:0:1: Attached scsi generic sg2 type 0
[ 3646.758110] sd 5:0:0:0: [sdb] 62529536 512-byte logical blocks: (32.0 GB/29.8 GiB)
[ 3646.758665] sd 5:0:0:1: [sdc] 31116288 512-byte logical blocks: (15.9 GB/14.8 GiB)
[ 3646.759210] sd 5:0:0:0: [sdb] Write Protect is off
[ 3646.759220] sd 5:0:0:0: [sdb] Mode Sense: 0f 00 00 00
[ 3646.759990] sd 5:0:0:1: [sdc] Write Protect is off
[ 3646.759999] sd 5:0:0:1: [sdc] Mode Sense: 0f 00 00 00
[ 3646.760452] sd 5:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3646.761206] sd 5:0:0:1: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3647.302953]  sdc: sdc1
[ 3647.304729]  sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 sdb6 >
[ 3647.308214] sd 5:0:0:1: [sdc] Attached SCSI removable disk
[ 3647.310335] sd 5:0:0:0: [sdb] Attached SCSI removable disk
[ 3647.473970] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3647.473976] sd 5:0:0:0: [sdb]  
[ 3647.473979] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3647.473982] sd 5:0:0:0: [sdb]  
[ 3647.473984] Sense Key : Medium Error [current] 
[ 3647.473996] Info fld=0x18
[ 3647.473998] sd 5:0:0:0: [sdb]  
[ 3647.474000] Add. Sense: Unrecovered read error
[ 3647.474002] sd 5:0:0:0: [sdb] CDB: 
[ 3647.474004] Read(10): 28 00 00 00 00 18 00 00 08 00
[ 3647.474011] end_request: critical medium error, dev sdb, sector 24
[ 3647.474014] Buffer I/O error on device sdb, logical block 3
[ 3647.578083] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3647.578088] sd 5:0:0:0: [sdb]  
[ 3647.578090] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3647.578093] sd 5:0:0:0: [sdb]  
[ 3647.578095] Sense Key : Medium Error [current] 
[ 3647.578099] Info fld=0x18
[ 3647.578102] sd 5:0:0:0: [sdb]  
[ 3647.578105] Add. Sense: Unrecovered read error
[ 3647.578108] sd 5:0:0:0: [sdb] CDB: 
[ 3647.578110] Read(10): 28 00 00 00 00 18 00 00 08 00
[ 3647.578121] end_request: critical medium error, dev sdb, sector 24
[ 3647.578125] Buffer I/O error on device sdb, logical block 3
[ 3647.681836] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3647.681841] sd 5:0:0:0: [sdb]  
[ 3647.681843] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3647.681846] sd 5:0:0:0: [sdb]  
[ 3647.681848] Sense Key : Medium Error [current] 
[ 3647.681852] Info fld=0x18
[ 3647.681855] sd 5:0:0:0: [sdb]  
[ 3647.681858] Add. Sense: Unrecovered read error
[ 3647.681862] sd 5:0:0:0: [sdb] CDB: 
[ 3647.681863] Read(10): 28 00 00 00 00 18 00 00 08 00
[ 3647.681874] end_request: critical medium error, dev sdb, sector 24
[ 3647.681882] Buffer I/O error on device sdb, logical block 3
[ 3647.785597] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3647.785604] sd 5:0:0:0: [sdb]  
[ 3647.785612] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3647.785621] sd 5:0:0:0: [sdb]  
[ 3647.785623] Sense Key : Medium Error [current] 
[ 3647.785626] Info fld=0x18
[ 3647.785628] sd 5:0:0:0: [sdb]  
[ 3647.785631] Add. Sense: Unrecovered read error
[ 3647.785633] sd 5:0:0:0: [sdb] CDB: 
[ 3647.785634] Read(10): 28 00 00 00 00 18 00 00 08 00
[ 3647.785642] end_request: critical medium error, dev sdb, sector 24
[ 3647.785646] Buffer I/O error on device sdb, logical block 3
[ 3647.889599] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3647.889610] sd 5:0:0:0: [sdb]  
[ 3647.889612] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3647.889614] sd 5:0:0:0: [sdb]  
[ 3647.889621] Sense Key : Medium Error [current] 
[ 3647.889625] Info fld=0x18
[ 3647.889626] sd 5:0:0:0: [sdb]  
[ 3647.889629] Add. Sense: Unrecovered read error
[ 3647.889631] sd 5:0:0:0: [sdb] CDB: 
[ 3647.889632] Read(10): 28 00 00 00 00 18 00 00 08 00
[ 3647.889640] end_request: critical medium error, dev sdb, sector 24
[ 3647.889643] Buffer I/O error on device sdb, logical block 3
[ 3647.998714] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3647.998719] sd 5:0:0:0: [sdb]  
[ 3647.998721] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3647.998724] sd 5:0:0:0: [sdb]  
[ 3647.998726] Sense Key : Medium Error [current] 
[ 3647.998736] Info fld=0x18
[ 3647.998738] sd 5:0:0:0: [sdb]  
[ 3647.998740] Add. Sense: Unrecovered read error
[ 3647.998748] sd 5:0:0:0: [sdb] CDB: 
[ 3647.998749] Read(10): 28 00 00 00 00 18 00 00 08 00
[ 3647.998756] end_request: critical medium error, dev sdb, sector 24
[ 3647.998759] Buffer I/O error on device sdb, logical block 3
[ 3648.102210] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3648.102215] sd 5:0:0:0: [sdb]  
[ 3648.102217] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3648.102220] sd 5:0:0:0: [sdb]  
[ 3648.102222] Sense Key : Medium Error [current] 
[ 3648.102226] Info fld=0x18
[ 3648.102229] sd 5:0:0:0: [sdb]  
[ 3648.102232] Add. Sense: Unrecovered read error
[ 3648.102235] sd 5:0:0:0: [sdb] CDB: 
[ 3648.102237] Read(10): 28 00 00 00 00 18 00 00 08 00
[ 3648.102248] end_request: critical medium error, dev sdb, sector 24
[ 3648.102252] Buffer I/O error on device sdb, logical block 3
[ 3648.205092] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3648.205099] sd 5:0:0:0: [sdb]  
[ 3648.205102] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3648.205105] sd 5:0:0:0: [sdb]  
[ 3648.205107] Sense Key : Medium Error [current] 
[ 3648.205112] Info fld=0x10
[ 3648.205115] sd 5:0:0:0: [sdb]  
[ 3648.205119] Add. Sense: Unrecovered read error
[ 3648.205122] sd 5:0:0:0: [sdb] CDB: 
[ 3648.205124] Read(10): 28 00 00 00 00 10 00 00 08 00
[ 3648.205139] end_request: critical medium error, dev sdb, sector 16
[ 3648.205143] Buffer I/O error on device sdb, logical block 2
[ 3648.311213] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3648.311217] sd 5:0:0:0: [sdb]  
[ 3648.311220] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3648.311222] sd 5:0:0:0: [sdb]  
[ 3648.311223] Sense Key : Medium Error [current] 
[ 3648.311227] Info fld=0x10
[ 3648.311229] sd 5:0:0:0: [sdb]  
[ 3648.311232] Add. Sense: Unrecovered read error
[ 3648.311234] sd 5:0:0:0: [sdb] CDB: 
[ 3648.311236] Read(10): 28 00 00 00 00 10 00 00 08 00
[ 3648.311244] end_request: critical medium error, dev sdb, sector 16
[ 3648.311247] Buffer I/O error on device sdb, logical block 2
[ 3648.577353] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3648.577359] sd 5:0:0:0: [sdb]  
[ 3648.577362] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3648.577365] sd 5:0:0:0: [sdb]  
[ 3648.577368] Sense Key : Medium Error [current] 
[ 3648.577373] Info fld=0x10
[ 3648.577376] sd 5:0:0:0: [sdb]  
[ 3648.577380] Add. Sense: Unrecovered read error
[ 3648.577383] sd 5:0:0:0: [sdb] CDB: 
[ 3648.577385] Read(10): 28 00 00 00 00 10 00 00 08 00
[ 3648.577397] end_request: critical medium error, dev sdb, sector 16
[ 3648.679459] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3648.679465] sd 5:0:0:0: [sdb]  
[ 3648.679467] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3648.679469] sd 5:0:0:0: [sdb]  
[ 3648.679470] Sense Key : Medium Error [current] 
[ 3648.679474] Info fld=0x10
[ 3648.679476] sd 5:0:0:0: [sdb]  
[ 3648.679478] Add. Sense: Unrecovered read error
[ 3648.679480] sd 5:0:0:0: [sdb] CDB: 
[ 3648.679482] Read(10): 28 00 00 00 00 10 00 00 08 00
[ 3648.781476] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3648.781482] sd 5:0:0:0: [sdb]  
[ 3648.781485] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3648.781488] sd 5:0:0:0: [sdb]  
[ 3648.781491] Sense Key : Medium Error [current] 
[ 3648.781495] Info fld=0x10
[ 3648.781498] sd 5:0:0:0: [sdb]  
[ 3648.781501] Add. Sense: Unrecovered read error
[ 3648.781504] sd 5:0:0:0: [sdb] CDB: 
[ 3648.781507] Read(10): 28 00 00 00 00 10 00 00 08 00
[ 3648.883475] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3648.883479] sd 5:0:0:0: [sdb]  
[ 3648.883481] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3648.883483] sd 5:0:0:0: [sdb]  
[ 3648.883485] Sense Key : Medium Error [current] 
[ 3648.883488] Info fld=0x10
[ 3648.883490] sd 5:0:0:0: [sdb]  
[ 3648.883493] Add. Sense: Unrecovered read error
[ 3648.883495] sd 5:0:0:0: [sdb] CDB: 
[ 3648.883496] Read(10): 28 00 00 00 00 10 00 00 08 00
[ 3648.985339] sd 5:0:0:0: [sdb] Unhandled sense code
[ 3648.985346] sd 5:0:0:0: [sdb]  
[ 3648.985349] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3648.985352] sd 5:0:0:0: [sdb]  
[ 3648.985355] Sense Key : Medium Error [current] 
[ 3648.985359] Info fld=0x10
[ 3648.985362] sd 5:0:0:0: [sdb]  
[ 3648.985366] Add. Sense: Unrecovered read error
[ 3648.985369] sd 5:0:0:0: [sdb] CDB: 
[ 3648.985373] Read(10): 28 00 00 00 00 10 00 00 08 00
[ 3650.061034] EXT4-fs (sdb2): mounting ext3 file system using the ext4 subsystem
[ 3650.087716] EXT4-fs (sdb5): mounting ext3 file system using the ext4 subsystem
[ 3650.091550] EXT4-fs (sdb2): mounted filesystem with ordered data mode. Opts: (null)
[ 3650.126529] EXT4-fs (sdb5): mounted filesystem with ordered data mode. Opts: (null)
[ 3650.251328] systemd-hostnamed[3042]: Warning: nss-myhostname is not installed. Changing the local hostname might make it unresolveable. Please install nss-myhostname!
[ 3650.431860] EXT4-fs (sdb6): mounting ext3 file system using the ext4 subsystem
[ 3650.482055] EXT4-fs (sdb6): mounted filesystem with ordered data mode. Opts: (null)
[ 3712.184333] sdb: detected capacity change from 32015122432 to 0
[ 3715.539820] usb 1-1: USB disconnect, device number 6
[ 3715.548212] sd 5:0:0:1: [sdc] Synchronizing SCSI cache
[ 3715.548256] sd 5:0:0:1: [sdc]  
[ 3715.548258] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[ 3715.592110] FAT-fs (sdc1): unable to read boot sector to mark fs as dirty
[ 3803.484224] usb 1-1: new high-speed USB device number 7 using ehci-pci
[ 3803.617300] usb 1-1: New USB device found, idVendor=0421, idProduct=01c7
[ 3803.617314] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3803.617321] usb 1-1: Product: N900 (Storage Mode)
[ 3803.617328] usb 1-1: Manufacturer: Nokia
[ 3803.617334] usb 1-1: SerialNumber: 372041756775
[ 3803.618225] usb-storage 1-1:1.0: USB Mass Storage device detected
[ 3803.624084] scsi6 : usb-storage 1-1:1.0
[ 3804.625126] scsi 6:0:0:0: Direct-Access     Nokia    N900              031 PQ: 0 ANSI: 2
[ 3804.625721] scsi 6:0:0:1: Direct-Access     Nokia    N900              031 PQ: 0 ANSI: 2
[ 3804.626495] sd 6:0:0:0: Attached scsi generic sg1 type 0
[ 3804.627021] sd 6:0:0:1: Attached scsi generic sg2 type 0
[ 3804.637797] sd 6:0:0:1: [sdc] Attached SCSI removable disk
[ 3804.639085] sd 6:0:0:0: [sdb] Attached SCSI removable disk
[ 3809.249048] sd 6:0:0:0: [sdb] 16385984 512-byte logical blocks: (8.38 GB/7.81 GiB)
[ 3809.249805] sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3809.253668]  sdb: sdb4
[ 3809.253695] sdb: p4 size 34078720 extends beyond EOD, enabling native capacity
[ 3809.256398]  sdb: sdb4
[ 3809.256420] sdb: p4 size 34078720 extends beyond EOD, truncated
[ 3809.874549] FAT-fs (sdb4): invalid media value (0x01)
[ 3809.874554] FAT-fs (sdb4): Can't find a valid FAT filesystem
[ 3811.295315] sd 6:0:0:1: [sdc] 31116288 512-byte logical blocks: (15.9 GB/14.8 GiB)
[ 3811.296222] sd 6:0:0:1: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3811.299990]  sdc: sdc1
[ 3811.839438] FAT-fs (sdc1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ 3818.075938] FAT-fs (sdb4): invalid media value (0x01)
[ 3818.075944] FAT-fs (sdb4): Can't find a valid FAT filesystem
Any ideas would be greatly appreciated.

Last edited by malfunctioning; 2014-10-19 at 21:56.
 
Posts: 915 | Thanked: 3,209 times | Joined on Jan 2011 @ Germany
#3134
No idea what's wrong there and as I've recently demonstrated in another thread I'm certainly no expert in N900-flashing. So maybe opening a dedicated thread where people with real knowledge will look would be a good idea.

But I'd suggest to reflash again with the stock partition layout, then simply switch /home/user and MyDocs partitions [1].
That's at least what I did with my main N900 long ago and it works fine. For ED it doesn't really matter if it has its own partition or if it runs inside a dedicated subdirectory anywhere else. After all it's just a regular chroot. For example at the moment I have 3 different ED setups sitting in 3 different directories on my 27GB /home/user.

As for the "magic" that happened when switching from vfat to ext3 and back I think that both file systems store their metadata in different places, so one doesn't necessarily get overwritten by the other. Not long ago I got someone's SD card from a camera (vfat) that had some strange encounter with Linux Mint. After that I could mount it as vfat and as ext3, both showing me the exactly same directory structure (except for lost+found), but I could only see the files when mounting it as vfat. I could only correct this by deleting and recreating the partition altogether.


[1] http://wiki.maemo.org/Repartitioning...Docs_partition
 

The Following 3 Users Say Thank You to sulu For This Useful Post:
Posts: 330 | Thanked: 556 times | Joined on Oct 2012
#3135
Thank you, sulu. I will probably start a thread in the N900 or Fremantle forum, as some things are a little puzzling.

Your experience with that flash medium is illustrative, thanks.

Everything seems to be working fine, however, so I will experiment further with my setup for now. This problem that I had with my N900 made me do some reading, and I realize now that I want to minimize the use of FAT32 in my N900. The swap of MyDocs and /home was an alternative I thought about. I also thought about just converting MyDocs to ext3 altogether, but because of the assumptions made by the N900 startup script machinery some hacking I'm not comfortable with at this point is involved.

During my first firmware flash attempt I experimented. Converting MyDocs to ext3 will boot the N900, but it will do so in a very bizarre state, as the N900 will mount it as /home/opt, so all image resources like backgrounds, icons, fonts, etc will show as big "missing image" placeholders. Converting MyDocs to ext2 instead results in the dreaded reboot loop.

Regarding using ED in a dedicated partition vs a file image, is there no performance incentive whatsoever to using it in its own partition?

One of the reasons I decided to go with 2 additional ext3 partitions for Easy Debian is that after the problems I had, I don't like the idea of an ext3 image hosted in a FAT32 partition, as I think it can result in problems with the image itself when corruption in the host partition takes place (just a theory).

I am already running Easy Debian from one of the dedicated 7GB partitions, and so far so good!

Last edited by malfunctioning; 2014-10-20 at 13:09.
 
Posts: 915 | Thanked: 3,209 times | Joined on Jan 2011 @ Germany
#3136
Originally Posted by malfunctioning View Post
Regarding using ED in a dedicated partition vs a file image, is there no performance incentive whatsoever to using it in its own partition?

One of the reasons I decided to go with 2 additional ext3 partitions for Easy Debian is that after the problems I had, I don't like the idea of an ext3 image hosted in a FAT32 partition, as I think it can result in problems with the image itself when corruption in the host partition takes place (just a theory).
Freeing the ED chroot from the image brings a quite noticeable performance boost, because it eliminates the problem of having one file system on top of another, both not necessarily aligned to each other.

But it is not necessary to have a dedicated partition for that chroot. All it needs is a folder on a file system that supports POSIX file permissions (like the ext filesystems but not vfat).
Basically I could release ED "images" as simple tarballs containing only directories and files that users simply extract into a dedicated directory. The only reason I don't do this is because I assume that most people still have their big partition as vfat MyDocs and therefore require some POSIX-compatible overlay.

I for one have three different chroots running at the moment: wheezy_armel, wheezy_armhf and jessie_armel
Each of them sits in its own subdirectory (with these names) on my /home/user partition.
 

The Following 5 Users Say Thank You to sulu For This Useful Post:
Posts: 330 | Thanked: 556 times | Joined on Oct 2012
#3137
Excellent, thank you for the explanation. I do remember a conversation earlier with Estel and somebody else about using folders.

Since now I have 2 additional ext3 partitions (aside from the one I'm using right now for my current EasyDebian installation), I'll give this a try.

I'm about to partition my external microSD card to set up FlopSwap. So far I have been running ED and the swap partition both from the internal eMMC. I'm interested in seeing if I can achieve any performance gains by having swap on microSD.

**EDIT**
After installing FlopSwap, and setting swap on microSD, LibreOffice Writer starts cold (no data in swap) in 24 seconds. This is vs 31 seconds in my previous configuration (EasyDebian ext3 image in MyDocs, swap in eMMC).

Really nice!

Last edited by malfunctioning; 2014-10-20 at 16:57.
 

The Following 2 Users Say Thank You to malfunctioning For This Useful Post:
Posts: 915 | Thanked: 3,209 times | Joined on Jan 2011 @ Germany
#3138
Debian Jessie went into freeze on 5th of november and as anounced earlier I took this as a chance to build a first Easy Debian image based on it.
So here it is (reinob kindly uploaded the image to dropbox):
https://www.dropbox.com/s/oxeppgy5n9....img.lzma?dl=0

md5sums:
Code:
$ md5sum debian_jessie0sulu_armhf.img*
75151e78b6837fe983f32fc8bec3d336  debian_jessie0sulu_armhf.img
195bddd1bd7623ba08c8412815d03ae6  debian_jessie0sulu_armhf.img.lzma
user password: user
root password: root

btw I screwed up (again) with the nameserver in /etc/resolv.conf. Please see step 17 on how to fix it if you want to have network access from within the image.
Also, I forgot to set libc6 and libc-bin on hold in this image. Please see step 14 on how to fix that on your own.


For the most part the same instructions I put up for creating a wheezy image [1] still apply. However, there had to be some changes.
I hope this covers the whole process:

1)
As mentioned in [2] we need to patch glibc to accept Fremantle's 2.6.28 kernel. You'll need an armhf/armel system running at least kernel 2.6.32 to do all this, so doing it on the N900 itself is no longer an option.
I did all of this on my Cubieboard2, which took about 6 hours. Once you have an image running you can create new patched glibc packages on the N900 (if the watchdog doesn't kill it).
I would strongly advise against using qemu, at least if you're over 40 and want it done before you retire.
If you need newer glibc packages and can't create them on your own drop me a note and I'll build them. But it may take a week or so.

a)
On a Debian Jessie armhf (or armel) system get the glibc sources
Code:
apt-get source glibc
b)
change into the created folder and apply the following changes:

Code:
Description: decrease min kernel version to 2.6.28 for Fremantle compatibility

--- glibc-2.19.orig/ports/sysdeps/unix/sysv/linux/tile/configure
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/configure
@@ -1,4 +1,4 @@
 # This file is generated from configure.ac by Autoconf.  DO NOT EDIT!
  # Local configure fragment for sysdeps/unix/sysv/linux/tile.

-arch_minimum_kernel=2.6.32
+arch_minimum_kernel=2.6.28
--- glibc-2.19.orig/ports/sysdeps/unix/sysv/linux/tile/configure.ac
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/configure.ac
@@ -1,4 +1,4 @@
 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 # Local configure fragment for sysdeps/unix/sysv/linux/tile.

-arch_minimum_kernel=2.6.32
+arch_minimum_kernel=2.6.28
--- debian/debhelper.in/libc.preinst.orig       2017-10-08 11:32:18.123876676 +0200
+++ debian/debhelper.in/libc.preinst    2017-10-08 11:33:07.583800072 +0200
@@ -357,11 +357,11 @@
         # sanity checking for the appropriate kernel on each architecture.
         kernel_ver=`uname -r`
 
-        # The GNU libc requires a >= 2.6.32 kernel, found in squeeze/lucid/RHEL6
-        if linux_compare_versions "$kernel_ver" lt 2.6.32
+        # The GNU libc requires a >= 2.6.28 kernel, found in squeeze/lucid/RHEL6
+        if linux_compare_versions "$kernel_ver" lt 2.6.28
         then
             echo WARNING: this version of the GNU libc requires kernel version
-            echo 2.6.32 or later.  Please upgrade your kernel before installing
+            echo 2.6.28 or later.  Please upgrade your kernel before installing
             echo glibc.
             kernel26_help

--- debian/sysdeps/linux.mk.orig        2017-10-08 11:32:00.903903345 +0200
+++ debian/sysdeps/linux.mk     2017-10-08 11:32:39.073844230 +0200
@@ -1,5 +1,5 @@
 # When changing this, make sure to update debian/debhelper.in/libc.preinst!
-MIN_KERNEL_SUPPORTED := 2.6.32
+MIN_KERNEL_SUPPORTED := 2.6.28
Additionally the testsuite checks have to be ignored during the package generation because some of them will fail:
Code:
# diff -u libc6/glibc-2.19/debian/testsuite-checking/compare.sh.orig libc6/glibc-2.19/debian/testsuite-checking/compare.sh
--- libc6/glibc-2.19/debian/testsuite-checking/compare.sh.orig	2014-11-09 14:43:46.809977508 +0000
+++ libc6/glibc-2.19/debian/testsuite-checking/compare.sh
@@ -41,5 +41,5 @@
 
 rm -f $expected $results
 # This would be a lovely place to exit 0 if you wanted to disable hard failures
-#exit 0
+exit 0
 exit $rv
c)
We need to tell dpkg that we changed the sources:
Code:
dpkg-source --commit
This will ask you to specify a name for the patch (chose whatever you like) and bring up the standard editor to provide a description for it.

d)
Now you can build the packages
Code:
debuild -us -uc

2)
While we're at it we can patch pulseaudio as well since it needs to use an older protocol version to be able to communicate with Fremantle's pulseaudio.

a)
get the sources
Code:
apt-get source pulseaudio
b)
change to the folder and apply the patch from [3]:
Code:
Description: decrease protocol version to 15 for Fremantle compatibility

--- pulseaudio-5.0.orig/configure.ac
+++ pulseaudio-5.0/configure.ac
@@ -41,7 +41,7 @@ AC_SUBST(PA_MINOR, pa_minor)
 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)

 AC_SUBST(PA_API_VERSION, 12)
-AC_SUBST(PA_PROTOCOL_VERSION, 29)
+AC_SUBST(PA_PROTOCOL_VERSION, 15)

 # The stable ABI for client applications, for the version info x:y:z
 # always will hold y=z
c)
make changes known:
Code:
dpkg-source --commit
d)
build the packages
Code:
debuild -us -uc

3)
Once this is done (or in parallel) we can create our image.

a)
create 2GB image file (adjust size if desired)
Code:
dd if=/dev/zero of=/path/to/image_file bs=1M count=2048
b)
format image file with ext2 (or ext3 etc.)
Code:
mkfs.ext2 /path/to/image_file
c)
mount image
Code:
mount -o loop /path/to/image_file /mountpoint

4)
Then we install Debian via debootstrap

a)
install base system (if you ommit --arch debootstrap will use the host's architecture; chose the Debian mirror closest to your location [4])
Code:
debootstrap --arch=armhf jessie /mountpoint http://ftp.de.debian.org/debian
b)
create /mountpoint/etc/apt/sources.list with this content (again, chose your mirror)
Code:
deb http://ftp.de.debian.org/debian jessie main
c)
(optional) disable default installation of recommended and suggested packages via these entries in /mountpoint/etc/apt/apt.conf
Code:
APT::Install-Recommends "0";
APT::Install-Suggests "0";

5)
So far in the image /var/run is a symlink to /run. For pulseaudio and dbus to work we need this to be swapped (the missing /mountpoint in the last line is not a typo)
Code:
rm -rf /mountpoint/var/run
mkdir /mountpoint/var/run
rm -rf /mountpoint/run
ln -s /var/run /mountpoint/run
we also need directories for pulse and dbus in /var/run
Code:
mkdir /mountpoint/var/pulse
mkdir /mountpoint/var/dbus
So far /var/lock was a symlink to /run/lock. Since we just deleted and recreated /run, this symlink now has no target which means it is treated as a file, not a directory.
For the xserver to start we need this to be a directory again:
Code:
rm /mountpoint/var/lock
mkdir /mountpoint/var/lock

6)
replace the standard keyboard layout in the chroot with the N900 keyboard
I usually do this by mounting my N900 to say /mnt/n900 and copying the whole directory directly from the device
Code:
rm -rf /mountpoint/usr/share/X11/xkb/*
cp -r /mnt/n900/usr/share/X11/xkb/* /mountpoint/usr/share/X11/xkb/

7)
copy the self-built glibc and pulseaudio packages somewhere into the image. Usually you won't need all of them. In any case you'll need the libc6 package itself and the libc-bin package (in my case: libc6_2.19-12_armhf.deb and libc-bin_2.19-12_armhf.deb) and the pulseaudio and libpulse0 packages (pulseaudio_5.0-13_armhf.deb and libpulse0_5.0-13_armhf.deb).
Everything else can either be taken from Debian directly or I didn't need it for my basic setup. You can also find all the binaries I created or used in this [5] binary archive.
In earlier Easy Debian images we also installed libgtkstylus for tap&hold for right click support. This package isn't available in Jessie anymore but the Wheezy package [6] still works. So download it and put it where you put the self-compiled glibc and pulseaudio packages.
There's another way of adressing this tap&hold issue via evdev that wicket used for DebiaN900 [7]. It's advantage is that it doesn't need deprecated packages and that it works for all applications, not only those written in Gtk+. It's downside is a lot of additional Xorg-related packages that would have to be installed. And I haven't fully understood how it works yet, mainly how to find out which devices have to be defined. Any assistance with this would be appreciated.


8)
extra binaries

a)
you'll need these binaries for keyboard focus in the chroot (take them from the provided archive [5], an existing image you have, or compile them on your own; sources are here [8][9])
Code:
/sbin/qobi-wmhint-fix
/usr/bin/set-focus
b)
if you use the provided armel binaries on a armhf image you'll need this symlink (see [10])
Code:
ln -s /lib/ld-linux-armhf.so.3 /mountpoint/lib/ld-linux.so.3
c)
additionally you'll need a script /usr/bin/startlxde1 that starts lxde on $DISPLAY :1 with this content:
Code:
[ "x$GTK_MODULES" != x ] || export GTK_MODULES=libgtkstylus.so
DISPLAY=:1 startlxde
Make sure this script is executable for the user.

If you prefer (and installed) another desktop you can replace startlxde in the 2nd line (e.g. with startxfce4), this script however has to keep its name startlxde1
You can find this script in the binary archive at [5] as well.


9)
chroot into the image
Code:
mount -o bind /proc /mountpoint/proc
mount -o bind /sys /mountpoint/sys
mount -o bind /dev/pts /mountpoint/dev/pts
chroot /mountpoint

10)
update apt and install additional required packages (add any packages you like)
Code:
apt-get update
apt-get install locales lxde-core dbus-x11 roxterm-gtk2 lxde-icon-theme xserver-xephyr bash-completion pulseaudio menu alsa-base alsa-utils jack

11)
fix this locales warning we just received (adjust the locale if you wish; info from here [11])
Code:
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales

12)
Up until Wheezy lxpolkit was a seperate package and it wasn't included in Easy Debian by default. With the switch to systemd in Jessie lxpolkit was moved into the lxsession package.
Since we have no systemd in Easy Debian (and we can't get it running with this old kernel) lxpolkit will start, but bring up an annoying message box complaining about a missing PID every time we start Easy Debian.
The easiest way of getting rid of this is to delete these files:
Code:
/mountpoint/etc/xdg/autostart/lxpolkit.desktop
/mountpoint/usr/bin/lxpolkit

13)
go to the folder you copied the packages to and replace Debian's glibc and pulseaudio packages with recompiled ones (either from the provided archive or your own ones) and install libgtkstylus
Code:
dpkg -i libc6_2.19-12_armhf.deb libc-bin_2.19-12_armhf.deb pulseaudio_5.0-13_armhf.deb libpulse0_5.0-13_armhf.deb libgtkstylus_0.3-2_armhf.deb

14)
make sure they won't be overwritten by future Debian updates (note: if you use synaptic you have to hold them there as well because synaptic doesn't care for what dpkg says)
Code:
echo libc6 hold |dpkg --set-selections
echo libc-bin hold |dpkg --set-selections
echo pulseaudio hold |dpkg --set-selections
echo libpulse0:armhf hold |dpkg --set-selections

15)
also hold xkb-data (this is where the keyboard layout comes from)
Code:
echo xkb-data hold |dpkg --set-selections
holding lxsession might be wise as well, although it's not critical if it's updated. You'll just have to live with the annoying lxpolkit message or repeat step 12)
Code:
echo lxsession hold |dpkg --set-selections

16)
create a user account. Fremantle's "user" has the UID 29999, but Debian starts creating users by default with a UID of 1000. So we have to specify the UID explicitly. But before we do this we should make sure that the "users" group has the right GID as well. By default it has the GID 100 and is already created but we want it to be GID 29999. So altogether it looks like this
Code:
delgroup users
addgroup -gid 29999 users
adduser -uid 29999 -gid 29999 user

17)
Up to now your image most likely contains an /etc/resolv.conf with an entry like this, which under normal circumstances will prevent any network access from within the image:
Code:
nameserver 192.168.1.254
Change it to look like this:
Code:
nameserver 127.0.0.1

Finally I did some basic tests with the image.

What works:

I) gparted works (at least it doesn't crash right away)

II) audacity works, but it needs some tweaking. On the N900 in Maemo you'll find these files:
Code:
/sbin/ezchroot
/sbin/qchroot
They contain lines like these:
Code:
mount -o bind /dev "$CHROOT/dev"
mount -o bind /proc "$CHROOT/proc"
mount -o bind /tmp "$CHROOT/tmp"
mount -o bind /var/tmp "$CHROOT/var/tmp"
mount -o bind /dev/shm "$CHROOT/dev/shm"
mount -o bind /sys "$CHROOT/sys"
Add this line:
Code:
mount -o bind /dev/snd "$CHROOT/dev/snd"
Then audacity will start (although it will still spill some warnings in the terminal about missing devices) and you'll actually be able to record audio.


What does not work:

I) It's the return of the gimp text tool crash that occured in Wheezy/armel but not armhf. With Jessie we have it in armhf too (I haven't checked Jessie/armel so far). If I start gimp from the image on my Cubieboard 2 it works.

II) Everything udev-related won't work as udev now relies on systemd. I can't estimate what that means right now.



[1] http://talk.maemo.org/showpost.php?p...postcount=3053
[2] http://talk.maemo.org/showpost.php?p...postcount=3030
[3] http://talk.maemo.org/showpost.php?p...6&postcount=34
[4] http://debgen.simplylinux.ch/
[5] http://www58.zippyshare.com/v/Bqm1uBWR/file.html (md5sum: d7e6f0bb49c3371fe2a5cc411b856322)
[6] https://packages.debian.org/wheezy/libgtkstylus
[7] http://talk.maemo.org/showthread.php?t=93878
[8] http://talk.maemo.org/showpost.php?p...4&postcount=23
[9] http://talk.maemo.org/showpost.php?p=425218&postcount=7
[10] http://talk.maemo.org/showpost.php?p...postcount=3040
[11] http://www.thomas-krenn.com/de/wiki/...d_unter_Debian

Last edited by sulu; 2017-10-09 at 13:03. Reason: added glibc patches not recorded by dpkg-source as hinted by @klausade
 

The Following 19 Users Say Thank You to sulu For This Useful Post:
Posts: 330 | Thanked: 556 times | Joined on Oct 2012
#3139
Thank you for your work and for your detailed exposition of what you have done, sulu! It is a great resource.

I will install your image in the next days and test.
 
Posts: 915 | Thanked: 3,209 times | Joined on Jan 2011 @ Germany
#3140
It seems qole is on vacation or something.
Could someone else please host the image before it vanishes?
 
Reply

Tags
beta, debian, easy debian, extras-devel, fremantle, i <3 qole, squeeze


 
Forum Jump


All times are GMT. The time now is 10:24.