|
| @oldman:
Wow, thorough analysis. Going through all this material and all the various postings and conversations, it seems to me that we're missing a small -- but critical -- step here. This is assuming the 256MB vs 128MB platform difference isn't an issue.
Personally, I can't get past the thought that there must be *something* that has to be flashed to the NAND. Otherwise, the NBP is expecting to boot into WinCE or pull a WinCE image off the CF, right?
Perhaps there is some sort of involvement by an external bootloader like HaRET or u-boot? | |
| |
H/PC Oracle Posts: | 16,175 |
Location: | Budapest, Hungary | Status: | |
| oldman: thanks for the instructions i'll try this soon.
as for arm disassembly, your sentence "It's very time consuming" is true.. for such a thing, we'd better get the kernel sources, modify the C code and recompile that. :/ | |
| |
H/PC Oracle Posts: | 16,175 |
Location: | Budapest, Hungary | Status: | |
| oldman, thank you, uncompressing a netbook pro OS image works with zpipe.
so now compressing custom CE images should work too!
i'm still curious about the linux project of course..sadly no netbook pro here. | |
| |
| Well, with all the latest back-and-forth with Psionteklogix, here is their final response to my questions:
"We are not aware of any undocumented features, and unfortunately we are unable to support your other requests."
For the love of Pete, people! Just give us the inside info on the friggin' thing! It's not like they're supporting it anymore...
Ah, well. I knew it was a long shot from the beginning. | |
| |
| Did anyone try booting it with a serial port plugged in to the pc and a terminal emulator (minicom, hyperterminal) running? Maybe the LCD driver isnt working yet, in which case boot messages are likely to be sent via serial. It may actually need to be recompiled for a 128MB machine, depending on whether the kernel can detect the amount of RAM or not. Getting the wrong CRC would seem to suggest this to me. | |
| |
| Oh, well since there are screen shots I guess the LCD is working ... sorry, I should have read a bit more.
Has anyone checked out http://linuxtogo.org/~koen/index.php. There are patches there for kernel 2.6.17. Maybe someone should try compiling Angstrom or just the kernel itself?
I dont actually have a netbook pro, but I'm tempted to get one now...
Ed | |
| |
H/PC Sensei Posts: | 1,330 |
Location: | North of England | Status: | |
| I am still waiting on stuff from Jon, however he has told me an important snippet:
When the kernel is booting the screen is black with flashing pixels - it's not dead, and debug messages are written to the serial console
So you might want to try that again with a serial cable connected...
I'm wondering whether it might be easier to use HaRet rather than mess around with BooSt... | |
| |
| Okay, after all, both images are made for 128MB RAM. This can be seen in the kernel setup tags contained in the images. Here is a dump of those tags, with some comments from me (compare with linux/include/asm-arm/setup.h ). It's identical for both images, the offset in the decompressed data is 25F6B4 (nbkProOS.img ) respectively 26A904 (nbkProsOS.img_cf ).
05 00 00 00 ; tag_header.size = 5*4 bytes
01 00 41 54 ; tag_header.tag = ATAG_CORE
01 00 00 00 ; tag_core.flags
; bit 0 - 1 = mount root read only
; bit 2 - 0 = load ramdisk
; bit 3 - 0 = prompt for ramdisk
00 10 00 00 ; tag_core.pagesize 0x00001000 => 4096 bytes
00 00 00 00 ; tag_core.rootdev => null device (but see ATAG_CMDLINE)
04 00 00 00 ; tag_header.size = 4*4 bytes
02 00 41 54 ; tag_header.tag = ATAG_MEM (memory configuration)
00 00 00 08 ; tag_mem32.size = 0x08000000 => 128MB RAM
00 00 00 A0 ; tag_mem32.start = 0xA0000000
04 00 00 00 ; tag_header.size = 4*4 bytes
05 00 42 54 ; tag_header.tag = ATAG_INITRD2
00 00 00 A1 ; tag_initrd.start = 0xA1000000
00 00 00 01 ; tag_initrd.size = 0x01000000
10 00 00 00 ; tag_header.size = 16*4 bytes
09 00 41 54 ; tag_header.tag = ATAG_CMDLINE (kernel parameters)
72 6F 6F 74 3D 2F 64 65 76 2F 72 61 6D 20 72 77 ; root=/dev/ram rw
20 63 6F 6E 73 6F 6C 65 3D 74 74 79 53 41 30 2C ; console=ttySA0,
31 31 35 32 30 30 20 69 6E 69 74 3D 2F 6C 69 6E ; 115200 init=/lin
75 78 72 63 00 00 00 00 ; uxrc\0\0\0\0
00 00 00 00 ; tag_header.size = 0*4 bytes (?)
00 00 00 00 ; tag_header.tag = ATAG_NONE (end of tags)
Even note the parameter "console=ttySA0,115200". ttySA0 is documented as "StrongARM builtin serial port 0".
| |
| |
| @chiark & oldman:
Good news on both fronts! I'm going to try the serial console connection tonight and will post the results. Just so we have it captured in this thread, can someone post a quick summary of setting up the serial connection for this situation?
Thanks! | |
| |
| Here's the serial connection info just so we have it here (from the BooStDongle.pdf):
In order to get access to your screen output, it is advisable to connect the Netbook Pro with the serial connection to a pc. On windows one may use Hyperterminal (115200 8N1 Hardware flow control), or on linux cu:
Install with:
$sudo apt-get install cu
Start cu with:
$cu -l /dev/ttyS0 -s 115200 | |
| |
| Ok, things are starting to look up. Hooked up the serial cable to my linux laptop and used minicom (couldn't get cu as mentioned in the instructions above ). There is indeed output from the NBP when the screen is blank and it does exit out to an emergency shell / command prompt. Here is the actual output I got:
Command> audio o 500,100 o 1000,100 o 2000,100
netBookPro boot menu
--.Power state is now Run (8)
starting power monitor
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 8192 bind 16384)
NET: Registered protocol family 1
NET: Registered protocol family 17
Epson S1D13XXX FB Driver, (c) 2004 Simtec Electronics
s1d138xx: s1d13806: revision 0
s1dfb-nbp: s1d13806: initialsing netbookpro settings
Console: switching to colour frame buffer device 100x37
fb0: s1d13xxx framebuffer device
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 8192KiB [1 disk] into ram disk... <7>nbp-battmon: nbp_battmon_setstate: returned 0
nbp-battmon: Battery monitor ready
<6>nbp-battmon: system restarted
done.
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 72K
/linuxrc: 78: cut: not found
FATAL: Module i2c not found.
FATAL: Module i2ckbd not found.
cardmgr[673]: watching 2 sockets
cardmgr[673]: socket 0: ATA/IDE Fixed Disk
hda: Hitachi CVM1.1.1, CFA DISK drive
ide0 at 0xc8820000-0xc8820007,0xc882000e on irq 94
hda: max request size: 128KiB
hda: 250368 sectors (128 MB) w/1KiB Cache, CHS=978/8/32
hda: hda1
ide-cs: hda: Vcc = 3.3, Vpp = 0.0
cardmgr[673]: exiting
hda: hda1
hda: hda1
hda: hda1
hda: hda1
mount: /dev/hda2 is not a valid block device
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
Unable to mount root filesystem *ABORTING* - Emergency shell
/bin/sh: can't access tty; job control turned off
/ #
| |
| |
H/PC Sensei Posts: | 1,330 |
Location: | North of England | Status: | |
| It's progress. Not great, but progress all the same | |
| |
Factor Fanatic Posts: | 64 |
Location: | Washington, DC USA | Status: | |
| Well, well, well. I was about to chime in about the serial connector but someone beat me to it. This is great. I have a NBP that I don't use because . . . I won't get into that. Suffice to say I want to run linux on it. Unfortunately, the most I can offer is moral support as my skills are lame. Nevertheless, I will join the ranks of supporters and encourage this track. It looks promising.
Paul Krupa | |
| |
| Here's what I'm going to try next: Based on oldmans' previous post:
Quote
I had too much time today. So I inspected the file nBkProOs.img_cf I was talking about. I cut off the first 260 bytes, decompressed it and browsed with a hex viewer. The kernel version is 2.6.9-rc1-bk18-nb1. The initrd contains an exciting sh script commented as "Netbook LX initial ramdisk boot script". Mainly, it does the following things:
1.) Print the kernel version.
2.) Try to mount /dev/hda1 temporarily and look for NBLXLoad.sh. If it's there, execute it. Remember, that script writes the root fs to the nands. I think /dev/hda1 must be the first CF partition.
3.) Try to mount /dev/hda2 (must be the second partition of CF). If that fails, try to mount /dev/mtdblock/0 with -t jffs2 (must be the nand memory). If that even fails, report an error and start a /bin/sh as an "Emergency shell" and exit.
4.) Take the previously mounted file system as the root file system and run /sbin/init in there.
Thus, the script has the option to mount and run a second CF partition as the root fs - similar to what I supposed with my previous post (they must have stolen my idea ;-)
Okay. Maybe one of you wants to do what I will do when I get my Netbook Pro (on your own risk!). For a first try, I would put that nBkProOs.img_cf renamed to nBkProOs.img on a FAT16-formatted CF, without any other files or partitions. Then boot that CF (reset, turn on while holding Ctrl-D, BooSt should appear, insert CF). On success, a kernel version should appear, an error message and the emergency shell. If this really works, it would be so wonderful, because we would have a running kernel!
Then the next try could be to create that second CF partition with a suitable distribution on it. If that even works, the next step could be the installation on nand: change the flags to 0x10013 (adapt header checksum - don't ask me), have a NBLXLoad.sh and so on.
If it all works, and if we do not get more information nor tools, someone should hack out how the nBkProOs.img is made, for being able to insert a newer kernel version and so on.
I'm going to give this a go using the files located here: http://www.linuxtogo.org/~anonymous
Basically, will create two partitions on a CF card and place the files in the appropriate partitions. (Hmmm.... should there be a swap partition, as well? )
Once again, will post the results here. | |
| |
| Here's what I did, using a 128MB CF:
1. Partitioned the CF into 50MB and 78MB partitions (FAT16 )
2. Ran "mkdosfs -F 16" on each partiion
3. Put nBkPro.img and the .sh file in partition 1
4. Put nBkProOS.img and the Jiffs2 file in partition 2
5. Set up serial cable connection and minicom
6. Entered BooSt, inserted CF
Here's the output:
cf0-0 mounted: size = 48825 KB (97650 * 512)
Loading "/cf0-0/nBkPro.img"...
Load BooSt script info: size = 300
netBook LX BooSt script
Unknown version
Command> nand -ignore erase 18 ee8
NAND bad blocks will be ignored.
NAND error, invalid block(s) specified!
Command> nand partition e8
NAND setting partition to 0xE8 blocks.
Loading 100% complete...
Load completed successfully.
cf0-1 mounted: size = 76260 KB (152520 * 512)
Loading "/cf0-1/nBkProOS.img"...
Load copy to nand0 info: size = 3403850
NETBOOKPRO Linux26
K123m
Loading 32% complete...
Loading 67% complete...
Loading 100% complete...
Command> load "/nand0-0/nBkProOs.img" run
Load completed successfully.
Loading "/nand0-0/nBkProOs.img"...
Load RAM image info: size = 3403850
NETBOOKPRO Linux26
K123m
Loading 98% complete...
Loading 100% complete...
Resetting to RAM module.
nand0-0 mounted: size = 3616 KB (7232 * 512)
Power state is now Run (8)
starting power monitor
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 8192 bind 16384)
NET: Registered protocol family 1
NET: Registered protocol family 17
Epson S1D13XXX FB Driver, (c) 2004 Simtec Electronics
s1d138xx: s1d13806: revision 0
s1dfb-nbp: s1d13806: initialsing netbookpro settings
Console: switching to colour frame buffer device 100x37
fb0: s1d13xxx framebuffer device
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 8192KiB [1 disk] into ram disk... <7>nbp-battmon: nbp_battmon_setstate: returned 0
nbp-battmon: Battery monitor ready
<6>nbp-battmon: system restarted
done.
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 72K
/linuxrc: 78: cut: not found
FATAL: Module i2c not found.
FATAL: Module i2ckbd not found.
cardmgr[673]: watching 2 sockets
cardmgr[673]: socket 0: ATA/IDE Fixed Disk
hda: Hitachi CVM1.1.1, CFA DISK drive
ide0 at 0xc8820000-0xc8820007,0xc882000e on irq 94
hda: max request size: 128KiB
hda: 250368 sectors (128 MB) w/1KiB Cache, CHS=978/8/32
hda: hda1 hda2
ide-cs: hda: Vcc = 3.3, Vpp = 0.0
cardmgr[673]: exiting
hda: hda1 hda2
hda: hda1 hda2
ls: /rootfs/*.jff: No such file or directory
ls: /rootfs/*.jffs2: No such file or directory
no file found - emergency shell sort it out yourself
/bin/sh: can't access tty; job control turned off
/ #
Getting closer (just a little )... I get the feeling I'm missing something obvious. | |
|
Seconds to generate: 0.328 - Cached queries : 41 - Executed queries : 32
| | |
|