Vše proběhlo bez problémů až na teploměr, ten je připojen prostřednictvím převodníku USB-RS232 s řadičem od FTDI. Digitemp používá 6-ti bitovou komunikaci, patne pro emulaci 1-wire prostřednictvím sériové linky. Bylo tedy nutné maličko upravit ovladač, jinak se v logu zobrazují následující hlášky a teploměr vůbec nefunguje:
ftdi_sio ttyUSB0: requested CSIZE setting not supported
Stačí provést úpravy v souboru /build_dir/target-mipsel_mips32_uClibc-0.9.33.2/linux-brcm47xx_generic/linux-3.10.49/drivers/usb/serial/ftdi_sio.c
Jedná se o sprosté zakomentování příslušné kontroly:
Řádek 2194:
/*if (C_CSIZE(tty) == CS6) { dev_warn(ddev, "requested CSIZE setting not supported\n"); termios->c_cflag &= ~CSIZE; if (old_termios) termios->c_cflag |= old_termios->c_cflag & CSIZE; else termios->c_cflag |= CS8; }*/ cflag = termios->c_cflag; if (!old_termios) goto no_skip;
A doplnění volby do switche od řádku 2240
switch (cflag & CSIZE) {
case CS5: dev_dbg(ddev, "Setting CS5 quirk\n"); break; case CS6: dev_dbg(ddev, "Setting CS6\n"); break; case CS7: urb_value |= 7; dev_dbg(ddev, "Setting CS7\n"); break;
Další možností je použití patche:
http://patchwork.ozlabs.org/patch/306740/
Pro Asus 500gP je možné rovnou stahovat balíček z ulož.to.
Žádné komentáře:
Okomentovat