Detekcia hardware závislá na bootovacom zariadení

Detekcia hardware závislá na bootovacom zariadení
« kdy: 01. 04. 2017, 17:54:25 »
Ahojte, starám sa o jeden Umax VisionBook-10.1PRO a na ňom Xubuntu-17.04-beta s kernelom Linuxium-4.10.0.10. Všetko čo potrebujem funguje, s Xubuntu funguje oveľa lepšie ako s dodávanými widlami.
Problém je že detekcia hardware je závislá na zariadení z ktorého bootujem:
  • pri boote z USB kľúča (/dev/sda) prečíta grub.cfg z /dev/mmcblk0, kernel a initram číta z /dev/sda, všetko ostatné z /dev/mmcblk0. Funguje všetko, vrátane touch a detekcie baterky.
  • pri boote z /dev/mmcblk0 s rovnakým kernelom a initram ide všetko z /dev/mmcblk0, funguje rovnako, ale touch a baterka nefunguje, v dmesg nie je o zariadeniach ani zmienka a hardware nevidím. Prítomnosť /dev/sda tiež nepomáha.
Ako je to možné? Touch ma v podstate nezaujíma, ale detekcia baterky ma serie. Dá sa s tým niečo robiť? Podobne sa správal aj pri GaliumOS s kernelom 4.7.2.


Jenda

Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #1 kdy: 01. 04. 2017, 21:51:00 »
Zkus diffnout dmesg jednoho a druhého bootu. A samozřejmě zkontrolovat, jestli ty kernely a initramdisky jsou opravdu stejné (sha256sum...)

nobody(ten pravej)

Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #2 kdy: 02. 04. 2017, 03:58:19 »
nema to logiku, vubec bych se nedivil, jak pise Jenda, ze ty initrds nebudou stejne a ten u "vadneho" stavu proste nema v sobe(nebo citelne) prislusne moduly, treba nenahodi acpi pro baterku a nevytvori input device pro touchscreen...

Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #3 kdy: 02. 04. 2017, 07:11:51 »
Zkus diffnout dmesg jednoho a druhého bootu. A samozřejmě zkontrolovat, jestli ty kernely a initramdisky jsou opravdu stejné (sha256sum...)
Kernely sú identické, initram sa samozrejme líšia, keďže xubuntu ho generuje takmer po každom poškrabkaní updates. Nefungujú ani rovnaké. Jednou z prvých vecí čo som urobil bolo, že som skopíroval všetko z /boot priečinku /dev/sda na /dev/mmcblk0 a reštartoval z /dev/mmcblk0, ale tablet sa správal rovnako (touch a baterku nepoznal). Bootovanie z /dev/sda (cez USB) a /dev/mmcblk0 sa správa dosť inak, diff je pre mňa nekonečný, ale pokiaľ by bol záujem, tak http://test.drgona.eu/dmesg.sda.txt, http://test.drgona.eu/dmesg.mmc.txt a http://test.drgona.eu/dmesg.diff.txt. Oba záznamy sú s identickými kernelmi, initrd.img, abi a System.map. Prikladám aj http://test.drgona.eu/lshw.sda.txt a http://test.drgona.eu/lshw.mmc.txt. Pri bootovaní z /dev/mmcblk0 bol USB kľúč v vložený.
Mne to celé pripomína situáciu a roku 2011-2012, keď na notebooku Acer aspire One som musel povoliť boot zo sieťovej karty, pretože inak sa po pripojení wifi rozbili IRQ, cez wifi neprechádzali žiadne dáta a celý systém väčšinou vytuhol. Vtedy som to riešil tak, že proste v BIOSe bolo povolené bootovanie z eth0, i keď ho nikdy nik nevyužil. Dnes (od Xubuntu-16.04LTS, možno aj skôr) už to nie je potrebné.
Dnešná situácia je horšia. Presvedčiť susedu že pri reštarte musí zasunúť USB, pri štarte oživot mačkať Esc, zvoliť výber bootovania a vybrať Ubuntu, ale až to druhé v poradí, je asi nad moje sily a jej chápanie. Rovnako vznikne problém aj pri prípadnom update kernelu.

Jenda

Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #4 kdy: 02. 04. 2017, 08:56:13 »
Bootovanie z /dev/sda (cez USB) a /dev/mmcblk0 sa správa dosť inak, diff je pre mňa nekonečný
Když odstraním timestampy (cat  dmesg.sda.txt | cut -d \] -f 2- | sponge dmesg.sda.txt) a použiju nějaké inteligentní diffovátko (kdiff3), tak mi ten diff přijde docela přehledný a krátký.

Zajímavé části:

tohle nevím, co je, a je to jediná věc, ve které se inicializace hardware liší:
Kód: [Vybrat]
usb usb1-port4: hash matches
 tty tty13: hash matches
 platform INT3400:00: hash matches
 acpi INT3400:00: hash matches
(koukal jsem do zdrojáků kernelu a dokumentace, konkrétně Documentation/ABI/testing/sysfs-power, a fakt z toho moudrý nejsem)

tady nenajde touchscreen:
Kód: [Vybrat]
input: FTSC0001:00 2808:1015 as /devices/pci0000:00/808622C1:05/i2c-12/i2c-FTSC0001:00/0018:2808:1015.0003/input/input8
 hid-multitouch 0018:2808:1015.0003: input,hidraw2: I2C HID v1.00 Device [FTSC0001:00 2808:1015] on i2c-FTSC0001:00
(existuje ten device? nějakej i2cprobe by mohl taky pomoct...)

Ještě bych diffnul lsmod.

Mne to celé pripomína situáciu a roku 2011-2012, keď na notebooku Acer aspire One som musel povoliť boot zo sieťovej karty, pretože inak sa po pripojení wifi rozbili IRQ, cez wifi neprechádzali žiadne dáta a celý systém väčšinou vytuhol.
Tohle mi přijde jako jiný problém - kernel podle mě ani neví, odkud byl zaveden, celé to funguje tak, že ho někdo nakopíruje do paměti a spustí. Problémy s IRQ se eliminovaly tím, že jsi tu flashku měl zasunutou i během úspěšného bootu.


Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #5 kdy: 02. 04. 2017, 13:34:36 »
Pridal som http://test.drgona.eu/lsmod.sda.txt a http://test.drgona.eu/lsmod.mmc.txt. Našiel som i2cdetect. Výstup i2cdetect -l je v oboch prípadoch rovnaký: http://test.drgona.eu/i2cdetect.sda.txt
Baterka sa pri poslednom načítaní z /dev/mmcblk0 kupodivu chytila, ukazovala reálne hodnoty, ale počas testovania Touchscreenu ma celkom zaujalo používanie tabletu bez klávesnice, takže by som to rád rozchodil.
Modprobe modulov, ktoré sa pri spustení z /dev/mmcblk0 nenačítajú nepomohlo, ani ich vloženie do /etc/modules. Moduly sa síce načítali, ale touch nefunguje.
Sensor na detekciu rotácie som síce nenašiel, ale napísal som si malý skript, ktorý otáča obrazovku striedavo portrait a landscape s tým, že korektne otáča aj touchscreen, spúšťanie som vyniesol na ikonu na panel, takže otáčanie zvládne hocikto. Onscreen klávesnicu som nastavil podobne ako v Androide, vyskočí keď je potrebná, samozrejme iba pokiaľ nie je pripojená fyzická klávesnica.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #6 kdy: 02. 04. 2017, 15:13:28 »
Modprobe modulov, ktoré sa pri spustení z /dev/mmcblk0 nenačítajú nepomohlo, ani ich vloženie do /etc/modules. Moduly sa síce načítali, ale touch nefunguje.

Nemuze vam tam chybet nejaky soubor s parametry modulu? Neco jako je v /etc/modprobe.d

Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #7 kdy: 03. 04. 2017, 06:44:56 »
Modprobe modulov, ktoré sa pri spustení z /dev/mmcblk0 nenačítajú nepomohlo, ani ich vloženie do /etc/modules. Moduly sa síce načítali, ale touch nefunguje.

Nemuze vam tam chybet nejaky soubor s parametry modulu? Neco jako je v /etc/modprobe.d
Zdravím, nemyslím si, že by tam chýbali nejaké parametre, keďže beží identický kernel aj initrd, parametre kernelu sú čítané z jedného grub.cfg a majú rovnakú root partition. Problém môže spôsobovať podľa mňa rôzne poradnie detekcie hardware, keď pri bootovaní z /dev/mmcblk0 sa niečo zdetekuje skôr a prekryje tým touchscreen, alebo jeho zbernicu
S Linuxom mám 15-ročné prevažne kladné skúsenosti, desaťročie je to môj jediný primárny operačný systém na desktope (výnimkou je malé odbočenie k FreeBSD), ale na kernel si netrúfam, okrem konfigurácie kernelu pre Gentoo.

nobody(ten pravej)

Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #8 kdy: 05. 04. 2017, 02:08:03 »
i kdyz z dmesg se zda ze problem je driv a tohle zajisti jen prodlevu pred namontovanim root zarizeni, ale zkusil bych pridat kernel parametr:
Kód: [Vybrat]
rootdelay=5

Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #9 kdy: 05. 04. 2017, 17:49:26 »
i kdyz z dmesg se zda ze problem je driv a tohle zajisti jen prodlevu pred namontovanim root zarizeni, ale zkusil bych pridat kernel parametr:
Kód: [Vybrat]
rootdelay=5

Zdravím, vyskúšal som, bohužiaľ nepomohlo..

nobody(ten pravej)

Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #10 kdy: 05. 04. 2017, 21:24:47 »
a bootloader mas co? grub legacy, grub efi, nebo primo z efi? ze by zkusit proste to druhe nez mas :)
pripadne zkusit jine jadro? http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D
a system kompletne zaktualizovanej mas?

nou

Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #11 kdy: 06. 04. 2017, 14:18:28 »
Neporadim ale mne na jednom EFI notebooku nefungovala WiFi ak bolo ubuntu ako prve v poradi bootovania. Muselo tam byt najprv nieco ine inak sa nechytil.

Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #12 kdy: 06. 04. 2017, 20:39:54 »
a bootloader mas co? grub legacy, grub efi, nebo primo z efi? ze by zkusit proste to druhe nez mas :)
pripadne zkusit jine jadro? http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D
a system kompletne zaktualizovanej mas?
Boot je grub efi. Efi sa nedá vypnúť, takže možnosť grub-legacy odpadá, môžem vyskúšať priamo bootovať z efi, ale zatiaľ som to nikdy nerobil.
S kernelom mám na tomto tablete všeobecne problém, zatiaľ najlepšie sa javí 4.10.0.10-linuxium, predtým som skúšal kernel z Gallium-OS-4.7.2, ten fungoval (bez wifi atď), ale napríklad 4.9.0-galliumos vôbec nenabehol (respektíve nič nezobrazil). Ďalej som skúšal aj kernely z odkazu, fungovali niektoré drm-intel-next, drm-intel-nightly, nikdy ale nešla wifi, bluetooth, nepoznal baterku, nešiel zvuk atď. Linuxium je priamo robené pre intel-atom tablety, na ňom ide takmer všetko. Predchádzajúci kernel 4.9-linuxium tiež napríklad nenabehol.
Dotyk na tom tablete nie je priorita, ale baterka a wifi je zásadná pre použiteľnosť, takže zatiaľ nemám inú voľbu.
Moja angličtina je dosť slabá na to aby som to rozoberal na jeho blogu.

Re:Detekcia hardware závislá na bootovacom zariadení
« Odpověď #13 kdy: 06. 04. 2017, 21:03:05 »
Neporadim ale mne na jednom EFI notebooku nefungovala WiFi ak bolo ubuntu ako prve v poradi bootovania. Muselo tam byt najprv nieco ine inak sa nechytil.
To vyzerá podobne, tiež keď bootujem druhý systém v poradí, tak sa dotych chytí, ale logiku v tom nevidím.