Portál AbcLinuxu, 1. května 2025 15:18
V minulém zápisku jsem slíbil pokračovat o ECM-LX800. Bohužel poté, co odmítl makat s mými displeji (jednou náhodně naskočil, ale to není moc motivace), jsem se rozzlostil a druhý zápisek vůbec neudělal. Naopak jsem se oné desky zbavil a tešil se na desku novou. No, to jsem si ale naletěl
.
Ve stručnosti k minulé desce. Měření ukázala, že se defacto jedná a katagolové hodnoty. Takže jsem jen narychlo naflákám fotky z měření bez komentáře. Na rohu obrazovky můžete vidět zátěž CPU. Ampéry jsou z 5V větve a miliampéry z 12V.
Protože se nechci moc odchylovat od hlavního tématu a to je má nejvyšší zlost.
Představte si, jste vývojář (pravda, já jsem hodně baby-vývojář) ale jste. Vaše firma vyrábí výrobek, v němž je deska NetDCU8, která byla vybrána jako vhodná a která se dodává ve dvou provedeních. Hardwarové stejných, ale lišící se operačním systémem. S deskama s WinCE nebyl problém. Přišla deska, vy jste ji zapnul a ona naskočila, všechen hardware fungoval, prostě žádný problém. Nu dobrá, jsme holt milovníci tučňáka, objednáme si Linuxovou desku.
První věc byla cena. Ač jsme desky s WindowsCE kupovali za smluvní cenu, kterou označím X. Deska s Linuxem stála, protože se jedná u kusovku (na hraní ) a ne sériový odběr, něco přes 2x a veřte že to nebylo málo peněz. Ale co byste neudělali že? Takže zbývá si počkat šest týdnů...
A po šesti týdnech ji máte na stole. Honosí se nálepkou Emlix, na což vám google řekne že se jedná o Embedded Linux z Německa. To vás v tu chvíli moc nezajímá, rychle k tomu narvat zdroj, dispej, připojit klávesnici a vidět tu slávu (stejný postup s WinCE fungoval na výbornou).
A přichází ona sprcha. Displej svítí jasnou bílou barvou (nejede), to samé klávesnice. Jediné co ukazuje na to, že se něco děje je blikající LED na oné destičce. Co to?
Tak jsem desku vztekle vypnul a hodil do kouta, že "to snad není pravda". Naštěsti duchapřítomný kolega podotkl, že deska vypisuje svoje stavy přes druhý sériový port. No na to jsem úplně zapomněl. Takže zpátky na stůl, připojit křížený sériový kabel a .. druhá chyba .. použít dodaný software, aneb jejich DcuTerm. A vida
Linux opravdu přes sériový port komunikuje. Ovšem ne nadlouho. Jakmile napíšu příkaz ls, vypadne na mě tato hrůza:
Takže musel nastoupit PuTTY, který už situaci zachránil. Ukázalo se, že ony nesmysly je označení, že text je barevný, což už PuTTY naštěstí dobře zpracoval a mohlo se tedy konečně začít browsit po disku. To mi připomíná, že určitě nebude na škodu rapidně prodloužit tento zápisek a to tak, že sem hodím kompletní výpis bootu:
U-Boot 1.1.3 (Jul 18 2006 - 19:23:11) NetDCU8 (c) 2006 emlix GmbH Board Revision 1.00 or 1.10 found U-Boot code: 31F00000 -> 31F296A4 BSS: -> 31F6C678 RAM Configuration: Bank #0: 30000000 64 MB NAND: 64 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 Loading from device 0: <NULL> at 0x4e000000 (offset 0xc0000) Image Name: emlix gmbh - F+S NetDCU8 Created: 2006-07-19 14:46:56 UTC Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 1240492 Bytes = 1.2 MB Load Address: 30008000 Entry Point: 30008000 ## Booting image at 31000000 ... Image Name: emlix gmbh - F+S NetDCU8 Created: 2006-07-19 14:46:56 UTC Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 1240492 Bytes = 1.2 MB Load Address: 30008000 Entry Point: 30008000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK Starting kernel ... Linux version 2.6.15-BSP1.2 (root@bserv) (gcc version 3.4.4 (Emlix Linux 3.4.4-5)) #1 Wed Jul 19 08:54:36 UTC 2006 CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T) Machine: NETDCU8 Memory policy: ECC disabled, Data cache writeback CPU S3C2440A (id 0x32440001) S3C2440: core 306.000 MHz, memory 102.000 MHz, peripheral 51.000 MHz S3C2410 Clocks, (c) 2004 Simtec Electronics CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on CPU0: D VIVT write-back cache CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets Built 1 zonelists Kernel command line: console=ttyS1,38400,8n1 root=/dev/mtdblock4 rootfstype=jffs2 irq: clearing pending ext status 00000010 irq: clearing subpending status 00000010 PID hash table entries: 512 (order: 9, 8192 bytes) timer tcon=00500000, tcnt a603, tcfg 00000200,00000000, usec 00001e1e Console: colour dummy device 80x30 Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 64MB = 64MB total Memory: 62116KB available (2067K code, 502K data, 100K init) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok NET: Registered protocol family 16 NetDCU8 (c) 2006 emlix GmbH Board Revision 1.00 or 1.10 found S3C2440: Initialising architecture S3C2440: IRQ Support S3C2440: Clock Support, UPLL 48.000 MHz, DVS off usbcore: registered new driver usbfs usbcore: registered new driver hub S3C2410 DMA Driver, (c) 2003-2004 Simtec Electronics DMA channel 0 at c4804000, irq 33 DMA channel 1 at c4804040, irq 34 DMA channel 2 at c4804080, irq 35 DMA channel 3 at c48040c0, irq 36 NetWinder Floating Point Emulator V0.97 (extended precision) audit: initializing netlink socket (disabled) audit(0.225:1): initialized JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc. Initializing Cryptographic API io scheduler noop registered io scheduler cfq registered bad parameter, switching off S3C2410 RTC, (c) 2004 Simtec Electronics s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440 s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440 s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440 F&S I/O Driver loaded (fsio char device 60) NetDCU matrix kbd: Keyboard matrix empty matrix: probe of matrix failed with error -22 dm9000 Ethernet Driver eth0: dm9000 at ff000000,ff000004 IRQ 16 MAC: 00:05:51:01:b6:ba NFTL driver: nftlcore.c $Revision: 1.98 $, nftlmount.c $Revision: 1.41 $ NetDCU8 NAND Driver, (c) 2006 emlix GmbH NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit) Scanning device for bad blocks Bad eraseblock 412 at 0x00670000 Using NetDCU8-NAND (5) static partition definition: Creating 5 MTD partitions on "NetDCU8-NAND": 0x00004000-0x00038000 : "U-Boot Bootloader" 0x00038000-0x00040000 : "U-Boot Environment" 0x00040000-0x000c0000 : "User Block" 0x000c0000-0x00200000 : "Kernel raw" 0x00200000-0x04000000 : "User Block targetfs" usbmon: debugfs is not available s3c2410-ohci s3c2410-ohci: S3C24XX OHCI s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1 s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000 hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected input: NetDCU8 TouchScreen as /class/input/input0 NetDCU8 TouchScreen: F+S touchscreen protocol loaded using min. 3, max. 10 samples for smoothing successfully loaded NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 4096 (order: 2, 16384 bytes) TCP bind hash table entries: 4096 (order: 2, 16384 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered TCP bic registered NET: Registered protocol family 1 NET: Registered protocol family 17 NET: Registered protocol family 15 usb 1-2: new full speed USB device using s3c2410-ohci and address 2 usb 1-2: device descriptor read/64, error -110 usb 1-2: device descriptor read/64, error -110 usb 1-2: new full speed USB device using s3c2410-ohci and address 3 usb 1-2: device descriptor read/64, error -110 usb 1-2: device descriptor read/64, error -110 usb 1-2: new full speed USB device using s3c2410-ohci and address 4 VFS: Mounted root (jffs2 filesystem) readonly. Freeing init memory: 100K usb 1-2: device not accepting address 4, error -110 usb 1-2: new full speed USB device using s3c2410-ohci and address 5 usb 1-2: device not accepting address 5, error -110 Mounting filesystems ... BusyBox v1.1.3 (2006.07.18-18:36+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. #
Ač deska o sobě tvrdí, že USB zná, nezná žádné USB zařízení. Respektive klávesnici, myš ani flash disk nezchroustal. Takže je podpora USB zřejmě taková, že funguje sběrnice a ovladače si mám dodat sám. Ale hlavně že má ovladač na TouchScreen.
Druhý dílčí úspěch je funkční ethernet alá eth0.
Tak je ale asi tak všechno.
Ještě jsem neházel flintu do žita. Ovladače určitě budou, akorát nebudou zavedené! Přece to není taková bída. Zabrowsil jsem tudíž do /dev abych se podíval, co že to tam vlastně mám a zkusil pomocí cat alespoň něco přečíst. Téměř všechny pokusy ale končí stejně:
# cd /dev/ # ls audio fsnand mem mtd9 mtdr6 ram2 ttyS0 audio0 fsnanda mixer mtdblock0 mtdr7 ram3 ttyS1 audio1 fsnanda1 mixer0 mtdblock1 mtdr8 random ttyS10 audioctl fsnanda2 mixer1 mtdblock2 mtdr9 rtc ttyS2 can0 fsnanda3 mmcblk0 mtdblock3 nb0 rtouchp ttyS3 can1 fsnanda4 mmcblk0p1 mtdblock4 nb1 sda ttyS4 can2 fspario mmcblk0p2 mtdblock5 nb2 sda1 ttyS5 console full mmcblk0p3 mtdblock6 nb3 sda2 ttyS6 dsp hda mtd0 mtdblock7 null sda3 ttyS7 dsp0 hda1 mtd1 mtdblock8 ppp sda4 ttyS8 dsp1 hda2 mtd2 mtdblock9 ptmx sndstat ttyS9 fb0 hda3 mtd3 mtdr0 pts tpanel ttyp0 fb1 hda4 mtd4 mtdr1 ptyp0 tty ttyp1 fsio0 initctl mtd5 mtdr2 ptyp1 tty0 ttyp2 fsio1 input mtd6 mtdr3 ptyp2 tty1 urandom fsio2 kmem mtd7 mtdr4 ram0 tty2 watchdog fsio3 lp0 mtd8 mtdr5 ram1 tty3 zero # cat sda1 modprobe: FATAL: Could not load /lib/modules/2.6.15-BSP1.2/modules.dep: No such file or directory modprobe: FATAL: Could not load /lib/modules/2.6.15-BSP1.2/modules.dep: No such file or directory cat: sda1: No such device or address #Tak jsem se pokouk alespoň po ko souborech. Ty, jak najdete v přiloženém filelistu v diskuzi (nepřišel jsem na to, jak to přiložit k zápisku), jsou pouze čtyři a s displejem a podobně nemají společného nic.
Tím bych tak nějak tenhle zápis uzavřel. Přiznám se bez mučení, že střevům Linuxu zas tak skvěle nerozumím, tak je možné, že mám hodně věcí před ksichtem a nevidím je, ale zkrátka se neubráním zklamání.
Toto samozřejmě není konec. Budu se zamozřejmě v rámci GPL pídit po zdrojácích a kontaktuji dodavatele (dosud jsem neudělal, proto tento zápisek jsou "první dojmy") a pokusím se věc nějak zvrátit.
A na vás mám dotaz. Už v minulém zápisku se ukázalo, že tu lidi, pracující s těmito zařízeními jsou. Jaké vy máte zkušenosti? Probíhalo vše hladce nebo podobně?
PS.: O dalším vývoji událostí budu, samozřejmě, informovat, pokud mi do toho nevletí jiná věc, což se právě (zatracený Pátek) děje.
Tiskni
Sdílej:
Měření ukázala, že se defacto jedná a katagolové hodnoty. Takže jsem jen narychlo naflákám fotky z měření bez komentáře. Na rohu obrazovky můžete vidět zátěž CPU. Ampéry jsou z 5V větve a miliampéry z 12V.To není nikterak hrozné. Mně tato mrcha sežere při 19V asi 400mA a to nemá ani z poloviny tolik periferií. Na druhou stranu zase má obsazené všechny 4 miniPCI sloty.
NetDCU8Nádherná a hračka. A na kolik, že tato hračka vyjde pokud je jen "na hraní"?První věc byla cena. Ač jsme desky s WindowsCE kupovali za smluvní cenu, kterou označím X. Deska s Linuxem stála, protože se jedná u kusovku (na hraní
) a ne sériový odběr, něco přes 2x a veřte že to nebylo málo peněz.
DcuTermWTF?
BTW: Se sériákem to není tak jednoduché a je ho třeba nastavit. Viz. stty
.
modprobe: FATAL: Could not load /lib/modules/2.6.15-BSP1.2/modules.dep: No such file or directory
depmode -a
Přiznám se bez mučení, že střevům Linuxu zas tak skvěle nerozumím, tak je možné, že mám hodně věcí před ksichtem a nevidím je, ale zkrátka se neubráním zklamání.Chyba. Člověk si užije o to míň srandy. Embedded není žádné klikadlo.
A na vás mám dotaz. Už v minulém zápisku se ukázalo, že tu lidi, pracující s těmito zařízeními jsou. Jaké vy máte zkušenosti? Probíhalo vše hladce nebo podobně?Já bych řekl, že jsi na tom ještě dobře. Já to zkoušel s tímto šrotem. Po čtyřech probdělých nocích s kernelem mě zachránilo OpenWRT. Nakonec jsem to tak po týdnu vzdal, protože se mi nepodařilo nastavit cross-compiler a šel si radši něco číst než zas do toho budu příště rýpat.
depmode -a
depmod
A přichází ona sprcha. Displej svítí jasnou bílou barvou (nejede), to samé klávesnice. Jediné co ukazuje na to, že se něco děje je blikající LED na oné destičce.Řekl bych, že deska je určena pro vývojáře a ne uživatele, takže IMHO je to docela logické chování. Prostě najede celé distro i s připravený framebufferm(nebo co to vůbec má) připravené už jen na tu tvou konkrétní aplikaci, která bude display používat.
Ač deska o sobě tvrdí, že USB zná, nezná žádné USB zařízení. Respektive klávesnici, myš ani flash disk nezchroustal. Takže je podpora USB zřejmě taková, že funguje sběrnice a ovladače si mám dodat sám. Ale hlavně že má ovladač na TouchScreen. Druhý dílčí úspěch je funkční ethernet alá eth0. Tak je ale asi tak všechno.Zrovna se nad tímto přístupem rozčiloval Andrew.
# ./fbtest modprobe: FATAL: Could not load /lib/modules/2.6.15-BSP1.2/modules.dep: No such file or directory Cannot open framebuffer /dev/fb0 # depmod FATAL: Could not open /lib/modules/2.6.15-BSP1.2/modules.dep.temp for writing: Read-only file systemTakže se bez flashnutí nehnu. Ale díky moc za nakopnutí, ty ukázkové programy v /bin jsem úplně přehlédl.
ls --color=no
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.