| 1 | = Maken van een eigen dreambox dm500 kernel = |
| 2 | |
| 3 | Deze pagina beschrijft het aan de praat krijgen van de kernel voor de dreambox: De dm500, powerpc architectuur. Binnen Syn-3 heet deze architectuur ppc. |
| 4 | |
| 5 | Schijnbaar zit je vast aan 2.6.9 door propieratary closed source modules. |
| 6 | |
| 7 | De sources en patches komen hier weg: |
| 8 | http://developer.elitedvb.net/listprojects.php?curr_dir=64 |
| 9 | |
| 10 | |
| 11 | == Eerste poging == |
| 12 | |
| 13 | |
| 14 | Eerst heb ik dit gedaan: |
| 15 | |
| 16 | * atftp pakketje om kernel te kunnen laden via tftp. (standaard werk, geen probleem) |
| 17 | * Toolchain maken met eerst alleen binutils_ppc en gcc_ppc. Zie wiki:npl/toolchains. |
| 18 | * Aanpassen buildsysteem lichtelijk voor het ondersteuning van meerdere architecturen. (Gebruik ARCH omgevings variabelle bij rebuildcheck of remoteinstall) |
| 19 | * Maken van linux_src en linux pakketje in ppc architectuur. Aan de hand van configfile + patches van bovenstaande site. |
| 20 | |
| 21 | Dit ging allemaal goed, hierna boot ik via het netwerk. (eerst bootp en atftp opzetten uiteraard) |
| 22 | |
| 23 | We hebben de standaard kernel commandline in de .config aangepast, zodat kernel output via serieel te zien is: |
| 24 | {{{ |
| 25 | CONFIG_CMDLINE="console=ttyS0,115200n8 root=/dev/mtdblock5 rootfstype=squashfs ro" |
| 26 | }}} |
| 27 | |
| 28 | De bedoeling is om eerst wel de eigen kernel te laden, maar nog het filesystem van de dreambox te gebruiken om te testen. Dezelfde kernel parambeters voor root= en zo zijn dus gebruikt. Resultaat: |
| 29 | {{{ |
| 30 | Automatic Boot: Enabled |
| 31 | ---------------------------- |
| 32 | 1 - Toggle Power-On Tests |
| 33 | 2 - Change a Boot Device |
| 34 | 3 - Change IP Addresses |
| 35 | 4 - Ping test |
| 36 | 5 - Change Baud Rate for S1 Boot |
| 37 | D - Display Configuration |
| 38 | 0 - Exit Menu and Boot Application |
| 39 | ->0 |
| 40 | Installed RAM: 48 MB |
| 41 | |
| 42 | System RAM check complete |
| 43 | Booting from [ENET] Ethernet... |
| 44 | Sending bootp request ... |
| 45 | |
| 46 | Got bootp response from : 192.168.13.1 |
| 47 | My ip address is : 192.168.13.2 |
| 48 | |
| 49 | Loading file "/zImage.treeboot" by TFTP for net boot ... |
| 50 | Transfer completed, 1142816 bytes received |
| 51 | Loaded successfully ... |
| 52 | Entry point at 0x500000 ... |
| 53 | |
| 54 | loaded at: 00500000 00618170 |
| 55 | relocated to: 00400000 00518170 |
| 56 | board data at: 00516124 00516170 |
| 57 | relocated to: 0040519C 004051E8 |
| 58 | zimage at: 004058E0 0051549E |
| 59 | avail ram: 00519000 02000000 |
| 60 | |
| 61 | Linux/PPC load: console=ttyS0,115200n8 root=/dev/mtdblock5 rootfstype=squashfs ro |
| 62 | Uncompressing Linux...done. |
| 63 | Now booting the kernel |
| 64 | Linux version 2.6.9 (root@psy) (gcc version 3.4.6) #1 Thu Oct 25 00:05:49 UTC 2007 |
| 65 | Built 1 zonelists |
| 66 | Kernel command line: console=ttyS0,115200n8 root=/dev/mtdblock5 rootfstype=squashfs ro |
| 67 | PID hash table entries: 256 (order: 8, 4096 bytes) |
| 68 | Console: colour dummy device 80x25 |
| 69 | Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) |
| 70 | Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) |
| 71 | Memory: 29856k available (1924k kernel code, 544k data, 80k init, 0k highmem) |
| 72 | Mount-cache hash table entries: 512 (order: 0, 4096 bytes) |
| 73 | NET: Registered protocol family 16 |
| 74 | SCSI subsystem initialized |
| 75 | usbcore: registered new driver usbfs |
| 76 | usbcore: registered new driver hub |
| 77 | devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au) |
| 78 | devfs: boot_options: 0x1 |
| 79 | JFFS2 version 2.2. (C) 2001-2003 Red Hat, Inc. |
| 80 | Serial: 8250/16550 driver $Revision: 1.90 $ 7 ports, IRQ sharing disabled |
| 81 | ttyS0 at MMIO 0x0 (irq = 20) is a 16550A |
| 82 | ttyS1 at MMIO 0x0 (irq = 21) is a 16550A |
| 83 | Data machine check in kernel mode. |
| 84 | Oops: machine check, sig: 7 [#1] |
| 85 | NIP: C010B6F0 LR: C010CF50 SP: C0313F30 REGS: c0259954 TRAP: 0202 Not tainted |
| 86 | MSR: 00021230 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 11 |
| 87 | TASK = c030dbd0[1] 'swapper' THREAD: c0312000Last syscall: 120 |
| 88 | PLB0: bear= 0x00000000 acr= 0x00000000 besr= 0x00000000 |
| 89 | PLB0 to OPB: bear= 0x400e0001 besr0= 0x03c00000 besr1= 0x00000000 |
| 90 | |
| 91 | GPR00: 00000000 C0313F30 C030DBD0 00000000 00000001 00000008 C01FAEE0 00000000 |
| 92 | GPR08: FFFFFFF8 E00E0000 C026F4E8 C026F4E8 24000082 00000000 00000000 00000000 |
| 93 | GPR16: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 |
| 94 | GPR24: 00000000 00029230 00000000 00000000 C0230000 C02379AC C02D1EA8 C026F4E8 |
| 95 | Call trace: [c010ad58] [c010b1c0] [c024f1ac] [c0002608] [c0006928] |
| 96 | Kernel panic - not syncing: Attempted to kill init! |
| 97 | <0>Rebooting in 180 seconds..<NULL> |
| 98 | }}} |
| 99 | |
| 100 | Een data machine check en vage output :( Zal er iets mis zijn met onze toolchain of kernel settings? |
| 101 | |
| 102 | == Tweede poging == |
| 103 | |
| 104 | Googelen en verder onderzoekken wat dit kan zijn... |
| 105 | |
| 106 | Deze site gevonden: http://www.zeta.org.au/~jon/dreambox/hacking.html: |
| 107 | |
| 108 | ''kingtut suggested that rather than getting klogd and syslogd working I could use dmesg to dump the kernel's message buffer. So I rebooted the DM5600 with the original kernel and my inspector program. When I did that I noticed that the original DM5600 kernel boots with the message "Redwood 6" whereas the kernel recompiled from the diffs boots with "Redwood 5". Sure enough, recompiling the diff'd kernel with CONFIG_REDWOOD_5=n, CONFIG_REDWOOD_6=y eliminates the machine check which was apparently caused by probing the second i2c bus that doesn't exist on the DM5600. |
| 109 | '' |
| 110 | |
| 111 | We hebben geen redwood in onze output, maaaaaaar in de config staat redwood_5 aan ipv 6 ! Dit veranderen we en proberen opnieuw: |
| 112 | {{{ |
| 113 | psy npl # ./remoteinstall linux 192.168.13.1 rebuild |
| 114 | * Build check: |
| 115 | |Dependency check linux_src (use ignoredep to skip) |
| 116 | |-|Dependency check gcc_ppc (use ignoredep to skip) |
| 117 | |-|-|Dependency check binutils_ppc (use ignoredep to skip) |
| 118 | |-|REBUILD REQUIRED: ./config has changed! |
| 119 | |-|REBUILDING /home/psy/syn3/ppc/kernel/linux_src/linux_src.SlackBuild: |
| 120 | ... |
| 121 | }}} |
| 122 | |
| 123 | Nogmaals booten met eigen kernel |
| 124 | {{{ |
| 125 | Linux/PPC load: console=ttyS0,115200n8 root=/dev/mtdblock5 rootfstype=squashfs ro |
| 126 | Uncompressing Linux...done. |
| 127 | Now booting the kernel |
| 128 | Linux version 2.6.9 (root@psy) (gcc version 3.4.6) #1 Sat Oct 27 19:22:44 UTC 2007 |
| 129 | IBM Redwood6 (STBx25XX) Platform |
| 130 | Port by MontaVista Software, Inc. (source@mvista.com) |
| 131 | Built 1 zonelists |
| 132 | Kernel command line: console=ttyS0,115200n8 root=/dev/mtdblock5 rootfstype=squashfs ro |
| 133 | PID hash table entries: 256 (order: 8, 4096 bytes) |
| 134 | Console: colour dummy device 80x25 |
| 135 | Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) |
| 136 | Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) |
| 137 | Memory: 29848k available (1920k kernel code, 548k data, 80k init, 0k highmem) |
| 138 | Mount-cache hash table entries: 512 (order: 0, 4096 bytes) |
| 139 | NET: Registered protocol family 16 |
| 140 | SCSI subsystem initialized |
| 141 | usbcore: registered new driver usbfs |
| 142 | usbcore: registered new driver hub |
| 143 | devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au) |
| 144 | devfs: boot_options: 0x1 |
| 145 | JFFS2 version 2.2. (C) 2001-2003 Red Hat, Inc. |
| 146 | Serial: 8250/16550 driver $Revision: 1.90 $ 7 ports, IRQ sharing disabled |
| 147 | ttyS0 at MMIO 0x0 (irq = 20) is a 16550A |
| 148 | ttyS1 at MMIO 0x0 (irq = 21) is a 16550A |
| 149 | ttyS2 at MMIO 0x0 (irq = 22) is a 16550A |
| 150 | loop: loaded (max 8 devices) |
| 151 | Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 |
| 152 | ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx |
| 153 | Using anticipatory io scheduler |
| 154 | Initializing USB Mass Storage driver... |
| 155 | usbcore: registered new driver usb-storage |
| 156 | USB Mass Storage support registered. |
| 157 | mice: PS/2 mouse device common for all mice |
| 158 | i2c /dev entries driver |
| 159 | IBM IIC driver v2.1 |
| 160 | ibm-iic0: using standard (100 kHz) mode |
| 161 | NET: Registered protocol family 2 |
| 162 | IP: routing cache hash table of 512 buckets, 4Kbytes |
| 163 | TCP: Hash tables configured (established 2048 bind 4096) |
| 164 | NET: Registered protocol family 1 |
| 165 | NET: Registered protocol family 17 |
| 166 | Root-NFS: No NFS server available, giving up. |
| 167 | VFS: Unable to mount root fs via NFS, trying floppy. |
| 168 | VFS: Cannot open root device "mtdblock5" or unknown-block(2,0) |
| 169 | Please append a correct "root=" boot option |
| 170 | Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0) |
| 171 | <0>Rebooting in 180 seconds..<NULL> |
| 172 | |
| 173 | }}} |
| 174 | |
| 175 | Dit is een 'mooie' foutmelding: hij kan alleen zn root filesystem niet vinden. |
| 176 | |
| 177 | == Mounten root fs == |
| 178 | |
| 179 | Waarschijnlijk hebben we geen mtd drivers. We kijken even in de dmesg van de orginele kernel. Later gaan we toch via nfs verder prutsen, maar nu willen we graag nog zo orgineel mogelijk blijven en dus van flash kunnen starten. |
| 180 | {{{ |
| 181 | Serial: 8250/16550 driver $Revision: 1.90 $ 7 ports, IRQ sharing disabled |
| 182 | ttyS0 at MMIO 0x0 (irq = 20) is a 16550A |
| 183 | ttyS1 at MMIO 0x0 (irq = 21) is a 16550A |
| 184 | ttyS2 at MMIO 0x0 (irq = 22) is a 16550A |
| 185 | loop: loaded (max 8 devices) |
| 186 | ne.c:v1.10 9/23/94 Donald Becker (becker@scyld.com) |
| 187 | Last modified Nov 1, 2000 by Paul Gortmaker |
| 188 | NE*000 ethercard probe at 0xc3060600:<4>eth0: interrupt from stopped card |
| 189 | 00 09 34 3b 34 44 |
| 190 | eth0: NE2000 found at 0xc3060600, using IRQ 25. |
| 191 | Universal TUN/TAP device driver 1.5 (C)1999-2002 Maxim Krasnyansky |
| 192 | Using deadline io scheduler |
| 193 | dreambox: flash mapping: 800000 at 7f800000 |
| 194 | DreamBOX rev3+: Found 1 x16 devices at 0x0 in 16-bit bank |
| 195 | Intel/Sharp Extended Query Table at 0x0031 |
| 196 | Using buffer write method |
| 197 | cfi_cmdset_0001: Erase suspend on write enabled |
| 198 | 0: offset=0x0,size=0x20000,blocks=64 |
| 199 | disable flash VPP |
| 200 | Creating 7 MTD partitions on "DreamBOX rev3+": |
| 201 | 0x00000000-0x00500000 : "DreamBOX cramfs+squashfs" |
| 202 | 0x00500000-0x007c0000 : "DreamBOX jffs2" |
| 203 | 0x007c0000-0x00800000 : "DreamBOX OpenBIOS" |
| 204 | 0x00000000-0x007c0000 : "DreamBOX (w/o bootloader)" |
| 205 | 0x00000000-0x00800000 : "DreamBOX (w/ bootloader)" |
| 206 | 0x00120000-0x00500000 : "DreamBOX SquashedFS" |
| 207 | 0x00000000-0x00120000 : "DreamBOX Cramfs" |
| 208 | }}} |
| 209 | |
| 210 | Dit zien we in onze eigen kernel output niet! |
| 211 | |
| 212 | Opnieuw met config_mtd_debug=y...geeft geen extra output. |
| 213 | |
| 214 | linux_src.pkg uitpakken en handmatig make menuconfig om bij de opties te kijken. (misschien komt het door dat we config_redwood6 nu gebruiken??) |
| 215 | |
| 216 | geprobeert met config_dm7000, maar gaf ook de machinecheck error. |
| 217 | |
| 218 | Deze opties aangezet: |
| 219 | {{{ |
| 220 | <*> MTD concatenating support |
| 221 | <*> RedBoot partition table parsing |
| 222 | [*] Include unallocated flash regions |
| 223 | }}} |
| 224 | hielp niks, zelfde output. |
| 225 | |
| 226 | alle flashchip drivers aangezet...amd geeft error, dus die weer uit: |
| 227 | {{{ |
| 228 | drivers/mtd/chips/amd_flash.c: In function `wide_read': |
| 229 | drivers/mtd/chips/amd_flash.c:143: error: structure has no member named `buswidth' |
| 230 | }}} |
| 231 | ook dit hielp niet..nog steeds niet de gewenste output. |
| 232 | |
| 233 | verder gelezen op de bovenvermelde site: |
| 234 | ''However, the boot still fails when remounting the root file system. |
| 235 | I checked the contents of /proc/mtd on a DM7000 kernel and the original DM5600 kernel and verified that both kernels map the physical memory to the mtd devices in the same way, so clearly that isn't the issue. Next step is to instrument the init/do_mounts.c to see why the root file system remount is failing. |
| 236 | Update: 29th October, 2003 |
| 237 | Finally! There was an error in the drivers/mtd/maps directory that prevented the 5600's memory maps being compiled into the kernel. Fixing that fixed the root mount problem. From there on in, it was all downhill! See the results.'' |
| 238 | In menuconfig alles met NAND translation en mappingzooi aangezet bij mtd, in de hoop dat dit met de mapping te maken heeft. |
| 239 | Dit hielp niet, maar er is een melding bijgekomen en we zien dat we ergens getallen kunnen invullen in de menuconfig. |
| 240 | |
| 241 | Ondertussen orginele mapping gechecked: |
| 242 | {{{ |
| 243 | root@dreambox:~> cat /proc/mtd |
| 244 | dev: size erasesize name |
| 245 | mtd0: 00500000 00020000 "DreamBOX cramfs+squashfs" |
| 246 | mtd1: 002c0000 00020000 "DreamBOX jffs2" |
| 247 | mtd2: 00040000 00020000 "DreamBOX OpenBIOS" |
| 248 | mtd3: 007c0000 00020000 "DreamBOX (w/o bootloader)" |
| 249 | mtd4: 00800000 00020000 "DreamBOX (w/ bootloader)" |
| 250 | mtd5: 003e0000 00020000 "DreamBOX SquashedFS" |
| 251 | mtd6: 00120000 00020000 "DreamBOX Cramfs" |
| 252 | }}} |
| 253 | |
| 254 | Deze melding is interesant in de dmesg van de orginele kernel: |
| 255 | {{{ |
| 256 | dreambox: flash mapping: 800000 at 7f800000 |
| 257 | DreamBOX rev3+: Found 1 x16 devices at 0x0 in 16-bit bank |
| 258 | Intel/Sharp Extended Query Table at 0x0031 |
| 259 | Using buffer write method |
| 260 | cfi_cmdset_0001: Erase suspend on write enabled |
| 261 | 0: offset=0x0,size=0x20000,blocks=64 |
| 262 | disable flash VPP |
| 263 | Creating 7 MTD partitions on "DreamBOX rev3+": |
| 264 | 0x00000000-0x00500000 : "DreamBOX cramfs+squashfs" |
| 265 | 0x00500000-0x007c0000 : "DreamBOX jffs2" |
| 266 | 0x007c0000-0x00800000 : "DreamBOX OpenBIOS" |
| 267 | 0x00000000-0x007c0000 : "DreamBOX (w/o bootloader)" |
| 268 | 0x00000000-0x00800000 : "DreamBOX (w/ bootloader)" |
| 269 | 0x00120000-0x00500000 : "DreamBOX SquashedFS" |
| 270 | 0x00000000-0x00120000 : "DreamBOX Cramfs" |
| 271 | }}} |
| 272 | 800000 komt overeen met 8 megabyte flash. |
| 273 | |
| 274 | Onze kernel geeft nu, na de mtd mapping zooi te activeren in menuconfig: |
| 275 | {{{ |
| 276 | physmap flash device: 4000000 at 8000000 |
| 277 | }}} |
| 278 | We gaan deze waarden ff omboppen naar 800000 en 7f800000 in menuconfig! De bankwidth moet waarschijnlijk op 2, omdat de melding 16-bit bank geeft. Dit moet het haast wel zijn :) |
| 279 | |
| 280 | We komen nu ergens, want we krijgen nu de volgende meldingen: |
| 281 | {{{ |
| 282 | redwood: flash mapping: 800000 at ff800000 |
| 283 | IBM Redwood: Found 1 x16 devices at 0x0 in 16-bit bank |
| 284 | Intel/Sharp Extended Query Table at 0x0031 |
| 285 | cfi_cmdset_0001: Erase suspend on write enabled |
| 286 | Using buffer write method |
| 287 | Creating 4 MTD partitions on "IBM Redwood": |
| 288 | 0x00000000-0x00400000 : "Redwood filesystem" |
| 289 | mtd: Giving out device 0 to Redwood filesystem |
| 290 | ftl_cs: FTL header not found. |
| 291 | 0x00400000-0x00410000 : "Redwood OpenBIOS Vital Product Data" |
| 292 | mtd: Giving out device 1 to Redwood OpenBIOS Vital Product Data |
| 293 | ftl_cs: FTL header corrupt! |
| 294 | 0x00410000-0x007e0000 : "Redwood kernel" |
| 295 | mtd: partition "Redwood kernel" doesn't start on an erase block boundary -- force read-only |
| 296 | mtd: Giving out device 2 to Redwood kernel |
| 297 | ftl_cs: FTL header not found. |
| 298 | 0x007e0000-0x00800000 : "Redwood OpenBIOS" |
| 299 | mtd: Giving out device 3 to Redwood OpenBIOS |
| 300 | ftl_cs: FTL header not found. |
| 301 | }}} |
| 302 | |
| 303 | Hebben het startadress verkeert ingevult? Nee, blijkbaar staat er iets anders fout. De orginele kernel geeft overal Dreambox in plaats van redwood. We proberen de 2 redwood dingen uit te zetten in menuconfig bij de mtd options. (partition table parsing en CFI mapping on redwood.) |
| 304 | |
| 305 | arg...nu krijgen we: |
| 306 | {{{ |
| 307 | physmap flash device: 800000 at 7f800000 |
| 308 | phys_mapped_flash: Found 1 x16 devices at 0x0 in 16-bit bank |
| 309 | Intel/Sharp Extended Query Table at 0x0031 |
| 310 | cfi_cmdset_0001: Erase suspend on write enabled |
| 311 | Using buffer write method |
| 312 | RedBoot partition parsing not available |
| 313 | mtd: Giving out device 0 to phys_mapped_flash |
| 314 | ftl_cs: FTL header not found. |
| 315 | }}} |
| 316 | ok...table parsing dan maar aan en nog eens.. |
| 317 | |
| 318 | helpt ook niet, nou zegt ie dat hij geen redboot partition table ziet. het valt op dat physmap nou wel op 7f800000 staat. |
| 319 | {{{ |
| 320 | physmap flash device: 800000 at 7f800000 |
| 321 | phys_mapped_flash: Found 1 x16 devices at 0x0 in 16-bit bank |
| 322 | Intel/Sharp Extended Query Table at 0x0031 |
| 323 | cfi_cmdset_0001: Erase suspend on write enabled |
| 324 | Using buffer write method |
| 325 | cmdlinepart partition parsing not available |
| 326 | No RedBoot partition table detected in phys_mapped_flash |
| 327 | mtd: Giving out device 0 to phys_mapped_flash |
| 328 | ftl_cs: FTL header not found. |
| 329 | }}} |
| 330 | |
| 331 | hmmm..nog maar eens die optie aanzetten. ik had ook wat andere 'niet gerelateerde dingen' veranderd toen ik die 2 opties uitzette.. |
| 332 | {{{ |
| 333 | physmap flash device: 800000 at 7f800000 |
| 334 | phys_mapped_flash: Found 1 x16 devices at 0x0 in 16-bit bank |
| 335 | Intel/Sharp Extended Query Table at 0x0031 |
| 336 | cfi_cmdset_0001: Erase suspend on write enabled |
| 337 | Using buffer write method |
| 338 | cmdlinepart partition parsing not available |
| 339 | No RedBoot partition table detected in phys_mapped_flash |
| 340 | mtd: Giving out device 0 to phys_mapped_flash |
| 341 | ftl_cs: FTL header not found. |
| 342 | redwood: flash mapping: 800000 at ff800000 |
| 343 | IBM Redwood: Found 1 x16 devices at 0x0 in 16-bit bank |
| 344 | Intel/Sharp Extended Query Table at 0x0031 |
| 345 | cfi_cmdset_0001: Erase suspend on write enabled |
| 346 | Using buffer write method |
| 347 | Creating 4 MTD partitions on "IBM Redwood": |
| 348 | 0x00000000-0x00400000 : "Redwood filesystem" |
| 349 | mtd: Giving out device 1 to Redwood filesystem |
| 350 | ftl_cs: FTL header not found. |
| 351 | 0x00400000-0x00410000 : "Redwood OpenBIOS Vital Product Data" |
| 352 | mtd: Giving out device 2 to Redwood OpenBIOS Vital Product Data |
| 353 | ftl_cs: FTL header corrupt! |
| 354 | 0x00410000-0x007e0000 : "Redwood kernel" |
| 355 | mtd: partition "Redwood kernel" doesn't start on an erase block boundary -- force read-only |
| 356 | mtd: Giving out device 3 to Redwood kernel |
| 357 | ftl_cs: FTL header not found. |
| 358 | 0x007e0000-0x00800000 : "Redwood OpenBIOS" |
| 359 | mtd: Giving out device 4 to Redwood OpenBIOS |
| 360 | ftl_cs: FTL header not found. |
| 361 | }}} |
| 362 | we zien weer iets meer, hij zeurt nog steeds over redwood zooi. je zou haast zeggen dat we een patch voor dreambox partition table parsing missen ofzo. |
| 363 | |
| 364 | we willen eigenlijk zien dreambox: flash mapping:. Omdat we bij de mtd opties niks zien, gaan we maar eens greppen: |
| 365 | {{{ |
| 366 | psy linux-2.6.9 # grep 'dreambox: flash mapping: ' . -R |
| 367 | ./drivers/mtd/maps/dreambox.c: printk(KERN_NOTICE "dreambox: flash mapping: %x at %x\n", |
| 368 | }}} |
| 369 | |
| 370 | Hey...deze file bevat de adressen hardcoded: |
| 371 | {{{ |
| 372 | #define WINDOW_ADDR 0x7f800000 |
| 373 | #define WINDOW_SIZE 0x00800000 |
| 374 | }}} |
| 375 | |
| 376 | In de Kconfig zien we: |
| 377 | {{{ |
| 378 | config MTD_DREAMBOX |
| 379 | tristate "CFI Flash devices mapped on Dreambox" |
| 380 | depends on MTD_CFI && PPC32 && 4xx && 40x && DM7000 |
| 381 | default y |
| 382 | help |
| 383 | This enables access routines for the flash chips on the Dreambox (DM7000). |
| 384 | If you have a dreambox then say 'Y' here. |
| 385 | }}} |
| 386 | aiiii....dan moet je een DM7000 hebben ingesteld als Machine type. En dit gaf nou juist die vage machine check error. |
| 387 | |
| 388 | We gaan terug naar de orginele config, en kijken hoe de mtd settings staan als je DM7000 als machinetype hebt. Misschien stond er een optie bij mtd verkeerd waardoor de machinecheck error kwam? Laten we ook eens in de orginele dmesg kijken of we wat zien over het machine type. (redwood stond er zowieso al niet bij!) ....nee hier staat niks...misschien in de proc entries? we kunnen niet echt wat vinden. |
| 389 | |
| 390 | We gokken maar eens op machine type dm7000, ZONDER i2c support. (die gast hierboven van die post had het over het feit dat er geen i2c in die dm500 zit) |
| 391 | |
| 392 | Dit helpt ook niet... OF we moeten redwood6 hebben en mtd ompatchen zodat ie meecompiled, of we moeten toch dm7000 hebben en uitzoeken waarom de machinecheck error ontstaat. (kernel debugging aanzetten dus). even googellen naar een dm500 patch. |
| 393 | |
| 394 | == Kijken bij tuxbox == |
| 395 | |
| 396 | Ok, dit werd helemaal niks...het zag er naar uit dat we een te oude kernel hadden. Ik heb tuxbox gebruikt om een image te maken volgens een 1 of andere howto. Dit werkt natuurlijk rampzalig, want tuxbox download alle sources 'lekker handig zelf', waardoor de helft niet werkt na een tijdje. |
| 397 | |
| 398 | maaaaaaaarrrrrrrrr....Ik zag dat ze deze patch downloaden: http://sources.dreamboxupdate.com/download/kernel-patches/linuxppc-2.6.9-dream-s7.diff.bz2 Dit staat nergens op de dreambox site of waardan ook aangegeven. Dus op de gok heb ik hem verhoogt en kwam ik uit op een 'max' van s8: http://sources.dreamboxupdate.com/download/kernel-patches/linuxppc-2.6.9-dream-s8.diff.bz2 |
| 399 | |
| 400 | Hier gaan we het opnieuw mee proberen, want deze patch heeft zo te zien wel native dm500 support! w000t |
| 401 | |
| 402 | == Nieuwe patch == |
| 403 | |
| 404 | De nieuwe s8 patch die echt VEEL groter is (100x) heeft dus wel een dm500 Machine type, EN ik kwam er achter dat je allerlei default configs hebt: |
| 405 | {{{ |
| 406 | psy linux-2.6.9 # ls arch/ppc/configs/ |
| 407 | FADS_defconfig ads8272_defconfig dm500_defconfig ibmchrp_defconfig ocotea_defconfig redwood6_defconfig |
| 408 | IVMS8_defconfig apus_defconfig dm56x0_defconfig k2_defconfig pcore_defconfig redwood_defconfig |
| 409 | SM850_defconfig ash_defconfig dm7000_defconfig lite5200_defconfig pmac_defconfig rpx8260_defconfig |
| 410 | SPD823TS_defconfig beech_defconfig dm7020_defconfig lopec_defconfig power3_defconfig rpxcllf_defconfig |
| 411 | TQM823L_defconfig bseip_defconfig ebony_defconfig mbx_defconfig pplus_defconfig rpxlite_defconfig |
| 412 | TQM8260_defconfig bubinga_defconfig ep405_defconfig mcpn765_defconfig prpmc750_defconfig sandpoint_defconfig |
| 413 | TQM850L_defconfig cedar_defconfig est8260_defconfig menf1_defconfig prpmc800_defconfig spruce_defconfig |
| 414 | TQM860L_defconfig common_defconfig ev64260_defconfig mvme5100_defconfig rainier_defconfig sycamore_defconfig |
| 415 | adir_defconfig cpci405_defconfig gemini_defconfig oak_defconfig redwood5_defconfig walnut_defconfig |
| 416 | }}} |
| 417 | |
| 418 | Met ''make dm500_defconfig'' kun je een .config maken aan de hand van deze default settings. IDEAAL! |
| 419 | |
| 420 | Als we dat doen en een diff runnen zien we dat er nog squashfs zooi ontbreekt, maar hier hebben we ook een patch voor: |
| 421 | {{{ |
| 422 | psy linux-2.6.9 # diff arch/ppc/configs/dm500_defconfig .config |
| 423 | 4c4 |
| 424 | < # Thu Dec 23 15:14:14 2004 |
| 425 | --- |
| 426 | > # Sun Oct 28 01:13:34 2007 |
| 427 | 677,680d676 |
| 428 | < CONFIG_SQUASHFS=y |
| 429 | < CONFIG_SQUASHFS_EMBEDDED=y |
| 430 | < CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=1 |
| 431 | < # CONFIG_SQUASHFS_VMALLOC is not set |
| 432 | }}} |
| 433 | |
| 434 | Deze patch trappen we er in en we maken opnieuw de .config en proberen het nu met onze zo te zien perfect gepatchede/configde kernel. w00t. |
| 435 | |
| 436 | Dit werkt! De kernel boot volledig, en enigma start op. |
| 437 | |
| 438 | = Testen oude omgeving met nieuwe kernel = |
| 439 | |
| 440 | Enigma start wel op maar we krijgen een wazig melding van enigma over Camd-ID not found, en daarna komen we in de setup wizard. |
| 441 | |
| 442 | Nadat we de commandline van de kernel hebben aangepast zodat we weer serial output krijgen kunnen we zien wat voor meldingen er voorbij komen tijden het booten. |
| 443 | |
| 444 | {{{ |
| 445 | Eep. Child "lib" (ino #24) of dir ino #1 doesn't exist! |
| 446 | Eep. Child "cfg_bullz_text" (ino #356) of dir ino #2 doesn't exist! |
| 447 | Eep. Child "kill_bullz_text" (ino #355) of dir ino #2 doesn't exist! |
| 448 | Eep. Child "localtime" (ino #100) of dir ino #6 doesn't exist! |
| 449 | Eep. Child "resolv.conf" (ino #18) of dir ino #6 doesn't exist! |
| 450 | Eep. Child "ci_cam.sh" (ino #47) of dir ino #39 doesn't exist! |
| 451 | Eep. Child "Gemini_backup.sh" (ino #42) of dir ino #39 doesn't exist! |
| 452 | Eep. Child "dropbear_script.sh" (ino #49) of dir ino #39 doesn't exist! |
| 453 | Eep. Child "countries" (ino #56) of dir ino #55 doesn't exist! |
| 454 | Eep. Child "plugins" (ino #392) of dir ino #59 doesn't exist! |
| 455 | Eep. Child "sokoban" (ino #853) of dir ino #60 doesn't exist! |
| 456 | Eep. Child "Gemini.conf" (ino #61) of dir ino #60 doesn't exist! |
| 457 | Eep. Child "bouquets" (ino #112) of dir ino #62 doesn't exist! |
| 458 | Eep. Child "config" (ino #65) of dir ino #62 doesn't exist! |
| 459 | jffs2_do_read_inode(): No data nodes found for ino #2 |
| 460 | jffs2_do_read_inode(): But it has children so we fake some modes for it |
| 461 | }}} |
| 462 | |
| 463 | Aan de vele errors te zien kan er iets niet gemount of gelezen worden. We kijken even verder op de seriele rootshell. |
| 464 | |
| 465 | hmmm...het lijkt er op dat de oude kernel ongeveer dezelfde errors geeft. Waarschijnlijk hebben we het jffs2 filesystem verkut met steeds maar resetten en rare kernels laden ;) |
| 466 | |
| 467 | dus mn dreambox is nu 'stuk'. nog meer reden om ver te kutten met een nfs filesystem en de rest van de userspace omgeving. |
| 468 | |
| 469 | Zie wiki:ppc/dreambox |
| 470 | |
| 471 | Later heb ik hem opnieuw geflashed en gemini geboot met onze eigen kernel. Dit lijkt te werken (had beeld etc), maar de afstands bediening layout was wel in de war? Maar kan ook een verkeerde instelling zijn. De kernel verklaar ik voorlopig 'AF'. :) |