Unfortunately no one can be told what fun_plug is - you have to see it for yourself.
You are not logged in.
Hi!
Can anyone tell if FTDI is available on the DNS-323?
http://ftdi-usb-sio.sourceforge.net/
Offline
Looking at the 2.6.12.6 kernel GPL as referenced to from the wiki, I can see that the ftdi_sio driver is in there (drivers/usb/serial). Does this mean it is available on the DNS or was it somehow excluded when the kernel was built for the DNS-323?
Offline
The FTDI driver can be inserted as kernel module. You need the usbserial.ko and ftdi_sio.ko kernel modules. Have a look at this post: http://dns323.kood.org/forum/t2375-Need … utter.html where I've explained how to get an Arduino (which uses an FTDI-chip) working.
Offline
Can you be more precise about how to "insmod them into the kernel"?
DiMension wrote:
To communicate with the Arduino you need the 'usbserial.ko' and 'ftdi_sio.ko' kernel modules. Get them from http://dev.skcserver.de/dns323/modules_v1.03/ and insmod them into the kernel. Then mknod /dev/ttyUSB0 c 188 0
Offline
I have managed to insmod the ftdi_sio kernel module. Who compiled the module at http://dev.skcserver.de/dns323/modules_v1.03/ ? I need to make an updated version of the driver.
Last edited by vedeja (2008-06-20 21:00:20)
Offline
Seems nobody is with me on this one... Anyway, I attempted to recompile the ftdi_sio.c without success. I got several error messages, perhaps my toolchain is out of order.
Some of the errors:
ftdi_sio.c:988: warning: initialization makes pointer from integer without a cast ftdi_sio.c:989: error: dereferencing pointer to incomplete type ftdi_sio.c:1003: error: dereferencing pointer to incomplete type ftdi_sio.c:1010: error: 'struct ftdi_private' has no member named 'write_offset' ftdi_sio.c:1019: error: 'NULL' undeclared (first use in this function) ftdi_sio.c:1021: error: 'struct ftdi_private' has no member named 'write_urb_pool_lock' ftdi_sio.c:1024: error: 'struct ftdi_private' has no member named 'write_urb_pool' ftdi_sio.c:1024: error: 'EINPROGRESS' undeclared (first use in this function) ftdi_sio.c:1025: error: 'struct ftdi_private' has no member named 'write_urb_pool' ftdi_sio.c:1036: error: 'struct ftdi_private' has no member named 'write_urb_pool_lock' ftdi_sio.c:1042: error: dereferencing pointer to incomplete type ftdi_sio.c:1043: error: dereferencing pointer to incomplete type ftdi_sio.c:1043: error: 'GFP_KERNEL' undeclared (first use in this function) ftdi_sio.c:1044: error: dereferencing pointer to incomplete type ftdi_sio.c:1045: error: 'struct ftdi_private' has no member named 'write_urb_pool_lock' ftdi_sio.c:1059: error: dereferencing pointer to incomplete type ftdi_sio.c:1061: error: 'struct ftdi_private' has no member named 'write_urb_pool_lock' ftdi_sio.c:1062: error: 'EFAULT' undeclared (first use in this function) ftdi_sio.c:1065: warning: incompatible implicit declaration of built-in function 'memcpy' ftdi_sio.c:1065: error: dereferencing pointer to incomplete type ftdi_sio.c:1069: error: dereferencing pointer to incomplete type ftdi_sio.c:1079: error: dereferencing pointer to incomplete type ftdi_sio.c:1080: error: dereferencing pointer to incomplete type ftdi_sio.c:1080: error: dereferencing pointer to incomplete type ftdi_sio.c:1081: error: dereferencing pointer to incomplete type ftdi_sio.c:1083: error: dereferencing pointer to incomplete type ftdi_sio.c:1083: error: 'USB_QUEUE_BULK' undeclared (first use in this function) ftdi_sio.c:1087: error: 'struct ftdi_private' has no member named 'write_urb_pool_lock' ftdi_sio.c:1092: error: 'struct ftdi_private' has no member named 'write_urb_pool_lock' ftdi_sio.c: At top level: ftdi_sio.c:1111: warning: 'struct urb' declared inside parameter list ftdi_sio.c:1112: error: conflicting types for 'ftdi_write_bulk_callback' ftdi_sio.c:310: error: previous declaration of 'ftdi_write_bulk_callback' was here ftdi_sio.c: In function 'ftdi_write_bulk_callback': ftdi_sio.c:1113: error: dereferencing pointer to incomplete type ftdi_sio.c:1114: warning: initialization makes pointer from integer without a cast ftdi_sio.c:1121: error: dereferencing pointer to incomplete type ftdi_sio.c:1122: error: dereferencing pointer to incomplete type ftdi_sio.c:1132: error: dereferencing pointer to incomplete type ftdi_sio.c:1134: error: dereferencing pointer to incomplete type ftdi_sio.c:1135: error: dereferencing pointer to incomplete type ftdi_sio.c:1135: error: 'tq_immediate' undeclared (first use in this function) ftdi_sio.c:1136: error: 'IMMEDIATE_BH' undeclared (first use in this function) ftdi_sio.c: At top level: ftdi_sio.c:1143: warning: 'struct usb_serial_port' declared inside parameter list ftdi_sio.c:1144: error: conflicting types for 'ftdi_write_room' ftdi_sio.c:308: error: previous declaration of 'ftdi_write_room' was here ftdi_sio.c: In function 'ftdi_write_room': ftdi_sio.c:1145: error: dereferencing pointer to incomplete type ftdi_sio.c:1151: error: 'struct ftdi_private' has no member named 'write_urb_pool_lock' ftdi_sio.c:1154: error: 'struct ftdi_private' has no member named 'write_urb_pool' ftdi_sio.c:1154: error: 'EINPROGRESS' undeclared (first use in this function) ftdi_sio.c:1155: error: 'struct ftdi_private' has no member named 'write_offset' ftdi_sio.c:1159: error: 'struct ftdi_private' has no member named 'write_urb_pool_lock' ftdi_sio.c: At top level: ftdi_sio.c:1166: warning: 'struct usb_serial_port' declared inside parameter list ftdi_sio.c:1167: error: conflicting types for 'ftdi_chars_in_buffer' ftdi_sio.c:309: error: previous declaration of 'ftdi_chars_in_buffer' was here ftdi_sio.c: In function 'ftdi_chars_in_buffer': ftdi_sio.c:1171: error: dereferencing pointer to incomplete type ftdi_sio.c:1172: error: 'struct ftdi_private' has no member named 'write_offset' ftdi_sio.c:1174: error: dereferencing pointer to incomplete type ftdi_sio.c:1176: error: 'struct ftdi_private' has no member named 'write_urb_pool_lock' ftdi_sio.c:1180: error: 'struct ftdi_private' has no member named 'write_urb_pool' ftdi_sio.c:1180: error: 'EINPROGRESS' undeclared (first use in this function) ftdi_sio.c:1185: error: 'struct ftdi_private' has no member named 'write_urb_pool_lock' ftdi_sio.c: At top level: ftdi_sio.c:1195: warning: 'struct urb' declared inside parameter list ftdi_sio.c:1196: error: conflicting types for 'ftdi_read_bulk_callback' ftdi_sio.c:311: error: previous declaration of 'ftdi_read_bulk_callback' was here ftdi_sio.c: In function 'ftdi_read_bulk_callback': ftdi_sio.c:1197: error: dereferencing pointer to incomplete type ftdi_sio.c:1198: warning: initialization makes pointer from integer without a cast ftdi_sio.c:1199: error: dereferencing pointer to incomplete type ftdi_sio.c:1200: error: dereferencing pointer to incomplete type ftdi_sio.c:1202: error: dereferencing pointer to incomplete type ftdi_sio.c:1210: error: dereferencing pointer to incomplete type ftdi_sio.c:1213: error: dereferencing pointer to incomplete type ftdi_sio.c:1213: error: dereferencing pointer to incomplete type ftdi_sio.c:1213: error: dereferencing pointer to incomplete type ftdi_sio.c:1214: error: dereferencing pointer to incomplete type ftdi_sio.c:1214: error: 'USB_QUEUE_BULK' undeclared (first use in this function) ftdi_sio.c:1222: error: dereferencing pointer to incomplete type ftdi_sio.c:1236: error: dereferencing pointer to incomplete type ftdi_sio.c:1238: error: dereferencing pointer to incomplete type ftdi_sio.c:1243: error: dereferencing pointer to incomplete type ftdi_sio.c:1244: error: dereferencing pointer to incomplete type ftdi_sio.c:1255: error: dereferencing pointer to incomplete type ftdi_sio.c:1259: error: 'NULL' undeclared (first use in this function) ftdi_sio.c:1261: error: 'struct ftdi_private' has no member named 'prev_status' ftdi_sio.c:1262: error: 'struct ftdi_private' has no member named 'diff_status' ftdi_sio.c:1262: error: 'struct ftdi_private' has no member named 'prev_status' ftdi_sio.c:1263: error: 'struct ftdi_private' has no member named 'delta_msr_wait' ftdi_sio.c:1264: error: 'struct ftdi_private' has no member named 'prev_status' ftdi_sio.c:1269: error: 'TTY_NORMAL' undeclared (first use in this function) ftdi_sio.c:1275: error: 'TTY_OVERRUN' undeclared (first use in this function) ftdi_sio.c:1279: error: 'TTY_BREAK' undeclared (first use in this function) ftdi_sio.c:1283: error: 'TTY_PARITY' undeclared (first use in this function) ftdi_sio.c:1287: error: 'TTY_FRAME' undeclared (first use in this function) ftdi_sio.c:1290: error: dereferencing pointer to incomplete type ftdi_sio.c:1294: error: dereferencing pointer to incomplete type ftdi_sio.c:1297: error: dereferencing pointer to incomplete type ftdi_sio.c:1297: error: 'TTY_FLIPBUF_SIZE' undeclared (first use in this function) ftdi_sio.c:1332: error: dereferencing pointer to incomplete type ftdi_sio.c:1334: error: dereferencing pointer to incomplete type ftdi_sio.c:1334: error: dereferencing pointer to incomplete type ftdi_sio.c:1335: error: dereferencing pointer to incomplete type ftdi_sio.c:1335: error: dereferencing pointer to incomplete type ftdi_sio.c:1336: error: dereferencing pointer to incomplete type ftdi_sio.c:1336: error: dereferencing pointer to incomplete type ftdi_sio.c:1339: error: dereferencing pointer to incomplete type ftdi_sio.c: At top level: ftdi_sio.c:1348: warning: 'struct usb_serial_port' declared inside parameter list ftdi_sio.c:1349: error: conflicting types for 'ftdi_break_ctl' ftdi_sio.c:314: error: previous declaration of 'ftdi_break_ctl' was here ftdi_sio.c: In function 'ftdi_break_ctl': ftdi_sio.c:1350: error: dereferencing pointer to incomplete type ftdi_sio.c:1351: error: dereferencing pointer to incomplete type ftdi_sio.c:1352: error: '__u16' undeclared (first use in this function) ftdi_sio.c:1352: error: expected ';' before 'urb_value' ftdi_sio.c:1360: error: 'urb_value' undeclared (first use in this function) ftdi_sio.c:1360: error: 'struct ftdi_private' has no member named 'last_set_data_urb_value' ftdi_sio.c:1362: error: 'struct ftdi_private' has no member named 'last_set_data_urb_value' ftdi_sio.c:1366: error: dereferencing pointer to incomplete type ftdi_sio.c:1366: error: dereferencing pointer to incomplete type ftdi_sio.c:1370: error: 'HZ' undeclared (first use in this function) ftdi_sio.c: At top level: ftdi_sio.c:1384: warning: 'struct termios' declared inside parameter list ftdi_sio.c:1384: warning: 'struct usb_serial_port' declared inside parameter list ftdi_sio.c:1385: error: conflicting types for 'ftdi_set_termios' ftdi_sio.c:312: error: previous declaration of 'ftdi_set_termios' was here ftdi_sio.c: In function 'ftdi_set_termios': ftdi_sio.c:1386: error: dereferencing pointer to incomplete type ftdi_sio.c:1387: error: dereferencing pointer to incomplete type ftdi_sio.c:1388: error: dereferencing pointer to incomplete type ftdi_sio.c:1389: error: '__u16' undeclared (first use in this function) ftdi_sio.c:1389: error: expected ';' before 'urb_value' ftdi_sio.c:1393: error: dereferencing pointer to incomplete type ftdi_sio.c:1409: error: 'urb_value' undeclared (first use in this function) ftdi_sio.c:1410: error: 'CSTOPB' undeclared (first use in this function) ftdi_sio.c:1412: error: 'PARENB' undeclared (first use in this function) ftdi_sio.c:1413: error: 'PARODD' undeclared (first use in this function) ftdi_sio.c:1416: error: 'CSIZE' undeclared (first use in this function) ftdi_sio.c:1418: error: 'CS5' undeclared (first use in this function) ftdi_sio.c:1419: error: 'CS6' undeclared (first use in this function) ftdi_sio.c:1420: error: 'CS7' undeclared (first use in this function) ftdi_sio.c:1421: error: 'CS8' undeclared (first use in this function) ftdi_sio.c:1429: error: 'struct ftdi_private' has no member named 'last_set_data_urb_value' ftdi_sio.c:1431: error: dereferencing pointer to incomplete type ftdi_sio.c:1431: error: dereferencing pointer to incomplete type ftdi_sio.c:1440: error: 'CBAUD' undeclared (first use in this function) ftdi_sio.c:1440: error: 'B0' undeclared (first use in this function) ftdi_sio.c:1442: error: dereferencing pointer to incomplete type ftdi_sio.c:1442: error: dereferencing pointer to incomplete type ftdi_sio.c:1446: error: 'HZ' undeclared (first use in this function) ftdi_sio.c:1450: warning: passing argument 1 of 'set_dtr' from incompatible pointer type ftdi_sio.c:1453: warning: passing argument 1 of 'set_rts' from incompatible pointer type ftdi_sio.c:1459: warning: passing argument 1 of 'change_speed' from incompatible pointer type ftdi_sio.c:1466: error: 'CRTSCTS' undeclared (first use in this function) ftdi_sio.c:1468: error: dereferencing pointer to incomplete type ftdi_sio.c:1469: error: dereferencing pointer to incomplete type ftdi_sio.c:1484: error: 'IXOFF' undeclared (first use in this function) ftdi_sio.c:1490: error: dereferencing pointer to incomplete type ftdi_sio.c:1490: error: 'VSTART' undeclared (first use in this function) ftdi_sio.c:1491: error: dereferencing pointer to incomplete type ftdi_sio.c:1491: error: 'VSTOP' undeclared (first use in this function) ftdi_sio.c:1494: error: dereferencing pointer to incomplete type ftdi_sio.c:1495: error: dereferencing pointer to incomplete type ftdi_sio.c:1507: error: dereferencing pointer to incomplete type ftdi_sio.c:1508: error: dereferencing pointer to incomplete type ftdi_sio.c: At top level: ftdi_sio.c:1522: warning: 'struct file' declared inside parameter list ftdi_sio.c:1522: warning: 'struct usb_serial_port' declared inside parameter list ftdi_sio.c:1523: error: conflicting types for 'ftdi_ioctl' ftdi_sio.c:313: error: previous declaration of 'ftdi_ioctl' was here ftdi_sio.c: In function 'ftdi_ioctl': ftdi_sio.c:1524: error: dereferencing pointer to incomplete type ftdi_sio.c:1525: error: dereferencing pointer to incomplete type ftdi_sio.c:1527: error: '__u16' undeclared (first use in this function) ftdi_sio.c:1527: error: expected ';' before 'urb_value' ftdi_sio.c:1536: error: 'TIOCMGET' undeclared (first use in this function) ftdi_sio.c:1541: error: dereferencing pointer to incomplete type ftdi_sio.c:1542: error: dereferencing pointer to incomplete type ftdi_sio.c:1546: error: 'HZ' undeclared (first use in this function) ftdi_sio.c:1556: error: dereferencing pointer to incomplete type ftdi_sio.c:1557: error: dereferencing pointer to incomplete type ftdi_sio.c:1568: error: 'EFAULT' undeclared (first use in this function) ftdi_sio.c:1572: error: 'TIOCM_DSR' undeclared (first use in this function) ftdi_sio.c:1573: error: 'TIOCM_CTS' undeclared (first use in this function) ftdi_sio.c:1574: error: 'TIOCM_RI' undeclared (first use in this function) ftdi_sio.c:1575: error: 'TIOCM_CD' undeclared (first use in this function) ftdi_sio.c:1576: error: 'struct ftdi_private' has no member named 'last_dtr_rts' ftdi_sio.c:1580: error: 'TIOCMSET' undeclared (first use in this function) ftdi_sio.c:1584: error: 'urb_value' undeclared (first use in this function) ftdi_sio.c:1584: error: 'TIOCM_DTR' undeclared (first use in this function) ftdi_sio.c:1585: warning: passing argument 1 of 'set_dtr' from incompatible pointer type ftdi_sio.c:1589: error: 'TIOCM_RTS' undeclared (first use in this function) ftdi_sio.c:1590: warning: passing argument 1 of 'set_rts' from incompatible pointer type ftdi_sio.c:1597: error: 'TIOCMBIS' undeclared (first use in this function) ftdi_sio.c:1602: warning: passing argument 1 of 'set_dtr' from incompatible pointer type ftdi_sio.c:1608: warning: passing argument 1 of 'set_rts' from incompatible pointer type ftdi_sio.c:1616: error: 'TIOCMBIC' undeclared (first use in this function) ftdi_sio.c:1621: warning: passing argument 1 of 'set_dtr' from incompatible pointer type ftdi_sio.c:1627: warning: passing argument 1 of 'set_rts' from incompatible pointer type ftdi_sio.c:1644: error: 'TIOCGSERIAL' undeclared (first use in this function) ftdi_sio.c:1645: warning: passing argument 1 of 'get_serial_info' from incompatible pointer type ftdi_sio.c:1645: warning: passing argument 2 of 'get_serial_info' from incompatible pointer type ftdi_sio.c:1647: error: 'TIOCSSERIAL' undeclared (first use in this function) ftdi_sio.c:1648: warning: passing argument 1 of 'set_serial_info' from incompatible pointer type ftdi_sio.c:1648: warning: passing argument 2 of 'set_serial_info' from incompatible pointer type ftdi_sio.c:1658: error: 'TIOCMIWAIT' undeclared (first use in this function) ftdi_sio.c:1659: error: 'NULL' undeclared (first use in this function) ftdi_sio.c:1660: error: 'struct ftdi_private' has no member named 'delta_msr_wait' ftdi_sio.c:1662: error: 'current' undeclared (first use in this function) ftdi_sio.c:1663: error: 'ERESTARTSYS' undeclared (first use in this function) ftdi_sio.c:1665: error: 'struct ftdi_private' has no member named 'diff_status' ftdi_sio.c:1668: error: 'EIO' undeclared (first use in this function) ftdi_sio.c:1672: error: 'struct ftdi_private' has no member named 'diff_status' ftdi_sio.c:1675: error: 'TIOCM_RNG' undeclared (first use in this function) ftdi_sio.c:1700: error: 'ENOIOCTLCMD' undeclared (first use in this function) ftdi_sio.c: At top level: ftdi_sio.c:1704: warning: 'struct usb_serial_port' declared inside parameter list ftdi_sio.c:1705: error: conflicting types for 'ftdi_throttle' ftdi_sio.c:315: error: previous declaration of 'ftdi_throttle' was here ftdi_sio.c: In function 'ftdi_throttle': ftdi_sio.c:1706: error: dereferencing pointer to incomplete type ftdi_sio.c:1707: error: dereferencing pointer to incomplete type ftdi_sio.c: At top level: ftdi_sio.c:1711: warning: 'struct usb_serial_port' declared inside parameter list ftdi_sio.c:1712: error: conflicting types for 'ftdi_unthrottle' ftdi_sio.c:316: error: previous declaration of 'ftdi_unthrottle' was here ftdi_sio.c: In function 'ftdi_unthrottle': ftdi_sio.c:1714: error: dereferencing pointer to incomplete type ftdi_sio.c:1716: error: dereferencing pointer to incomplete type ftdi_sio.c:1718: error: dereferencing pointer to incomplete type ftdi_sio.c:1718: error: dereferencing pointer to incomplete type ftdi_sio.c:1720: error: dereferencing pointer to incomplete type ftdi_sio.c:1720: error: dereferencing pointer to incomplete type ftdi_sio.c:1721: error: dereferencing pointer to incomplete type ftdi_sio.c:1721: error: dereferencing pointer to incomplete type ftdi_sio.c:1722: error: dereferencing pointer to incomplete type ftdi_sio.c:1722: error: dereferencing pointer to incomplete type ftdi_sio.c:1725: error: dereferencing pointer to incomplete type ftdi_sio.c: At top level: ftdi_sio.c:1730: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ftdi_init' ftdi_sio.c:1744: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ftdi_exit' ftdi_sio.c:1756: warning: data definition has no type or storage class ftdi_sio.c:1756: warning: parameter names (without types) in function declaration ftdi_sio.c:1757: warning: data definition has no type or storage class ftdi_sio.c:1757: warning: parameter names (without types) in function declaration ftdi_sio.c:1759: error: expected declaration specifiers or '...' before string constant ftdi_sio.c:1759: warning: data definition has no type or storage class ftdi_sio.c:1760: error: expected declaration specifiers or '...' before string constant ftdi_sio.c:1760: warning: data definition has no type or storage class ftdi_sio.c:1761: error: expected declaration specifiers or '...' before string constant ftdi_sio.c:1761: warning: data definition has no type or storage class ftdi_sio.c:1763: error: expected ')' before string constant ftdi_sio.c:1764: error: expected ')' before string constant make: *** [ftdi_sio] Error 1
Offline
I forgot how I did it exactly, but I can give you some handles. Set up your toolchain and make sure the correct PATH is set. Then enter your linux-2.6.12.6 directory. Type 'make menuconfig' and browse around a bit in the menu. You should add the ftdi_sio driver as a loadable module (M). Exit and save the menu and type 'make modules'.
I'm not sure if these are all the steps required, but with some fiddling I was able to get ftdi_sio.ko compiled.
Offline
Is my toolchain broken?
# make menuconfig arm-linux-uclibc-gcc: No such file or directory arm-linux-uclibc-gcc: No such file or directory arm-linux-uclibc-gcc: No such file or directory arm-linux-uclibc-gcc: No such file or directory arm-linux-uclibc-gcc: No such file or directory arm-linux-uclibc-gcc: No such file or directory arm-linux-uclibc-gcc: No such file or directory HOSTCC scripts/basic/fixdep In file included from /ffp/include/bits/posix1_lim.h:153, from /ffp/include/limits.h:144, from /mnt/HD_a2/ffp/bin/../lib/gcc/arm-unknown-linux-uclibc/4.1.3/include/limits.h:122, from /mnt/HD_a2/ffp/bin/../lib/gcc/arm-unknown-linux-uclibc/4.1.3/include/syslimits.h:7, from /mnt/HD_a2/ffp/bin/../lib/gcc/arm-unknown-linux-uclibc/4.1.3/include/limits.h:11, from scripts/basic/fixdep.c:113: /ffp/include/bits/local_lim.h:36:26: error: linux/limits.h: No such file or directory In file included from /ffp/include/sys/socket.h:35, from /ffp/include/netinet/in.h:25, from /ffp/include/arpa/inet.h:23, from scripts/basic/fixdep.c:115: /ffp/include/bits/socket.h:317:24: error: asm/socket.h: No such file or directory scripts/basic/fixdep.c: In function 'use_config': scripts/basic/fixdep.c:201: error: 'PATH_MAX' undeclared (first use in this function) scripts/basic/fixdep.c:201: error: (Each undeclared identifier is reported only once scripts/basic/fixdep.c:201: error: for each function it appears in.) scripts/basic/fixdep.c:201: warning: unused variable 's' scripts/basic/fixdep.c: In function 'parse_config_file': scripts/basic/fixdep.c:245: warning: pointer targets in passing argument 1 of 'use_config' differ in signedness scripts/basic/fixdep.c: In function 'parse_dep_file': scripts/basic/fixdep.c:297: error: 'PATH_MAX' undeclared (first use in this function) scripts/basic/fixdep.c:299: warning: pointer targets in passing argument 1 of 'strchr' differ in signedness scripts/basic/fixdep.c:299: warning: pointer targets in assignment differ in signedness scripts/basic/fixdep.c:297: warning: unused variable 's' make[1]: *** [scripts/basic/fixdep] Error 1 make: *** [scripts_basic] Error 2
Last edited by vedeja (2008-06-23 00:49:56)
Offline
Try the following:
source setpath cd linux-2.6.12.6 ./cv.sh make menuconfig
Configure the FTDI_SIO driver as a loadable module (by searching for it in the menu, and typing M to turn it on as a module)
make clean;make uImage;make modules;make modules_install
Basically you're doing what build_kernel does for you, but then with the modules selected.
If you're getting errors, make sure /usr/bin/gcc links to /usr/bin/gcc-3.4 and /usr/bin/g++ links to /usr/bin/g++-3.4:
sudo rm /usr/bin/gcc sudo ln -s /usr/bin/gcc-3.4 /usr/bin/gcc sudo rm /usr/bin/g++ sudo ln -s /usr/bin/g++-3.4 /usr/bin/++
Offline
Can anyone comment on why I get:
# make menuconfig arm-linux-uclibc-gcc: No such file or directory
Offline
Seems like the compiler is not in your path. Can you dump the output of
echo $PATH
here?
Offline
DiMension wrote:
Seems like the compiler is not in your path. Can you dump the output here?
/ # echo $PATH /ffp/sbin:/ffp/bin:/usr/sbin:/sbin:/usr/bin:/bin
Offline
vedeja wrote:
arm-linux-uclibc-gcc
arm-linux-uclibc-gcc is usually a name for a cross-compiler. The native compiler is just gcc. The scripts you're using are made for cross-compilation and probably set CC=arm-linux-uclibc-gcc or CROSS_COMPILE=arm-linux-uclibc- in your environment (setpath script?). You should remove these.
PS: There's no mkimage in ffp, but you'll need that to create a flashable kernel!
Offline
fonz wrote:
PS: There's no mkimage in ffp, but you'll need that to create a flashable kernel!
My intention is to make a kernel module not a complete new kernel.
Offline
OK, I removed the "CROSS_COMPILE=arm-linux-uclibc-" from my makefile, and some of the errors are gone. Still, quite a few remain:
/mnt/HD_a2/linux-2.6.12.6 # make menuconfig HOSTCC scripts/basic/fixdep In file included from /ffp/include/bits/posix1_lim.h:153, from /ffp/include/limits.h:144, from /mnt/HD_a2/ffp/bin/../lib/gcc/arm-unknown-linux-uclibc/4.1.3/include/limits.h:122, from /mnt/HD_a2/ffp/bin/../lib/gcc/arm-unknown-linux-uclibc/4.1.3/include/syslimits.h:7, from /mnt/HD_a2/ffp/bin/../lib/gcc/arm-unknown-linux-uclibc/4.1.3/include/limits.h:11, from scripts/basic/fixdep.c:113: /ffp/include/bits/local_lim.h:36:26: error: linux/limits.h: No such file or directory In file included from /ffp/include/sys/socket.h:35, from /ffp/include/netinet/in.h:25, from /ffp/include/arpa/inet.h:23, from scripts/basic/fixdep.c:115: /ffp/include/bits/socket.h:317:24: error: asm/socket.h: No such file or directory scripts/basic/fixdep.c: In function 'use_config': scripts/basic/fixdep.c:201: error: 'PATH_MAX' undeclared (first use in this function) scripts/basic/fixdep.c:201: error: (Each undeclared identifier is reported only once scripts/basic/fixdep.c:201: error: for each function it appears in.) scripts/basic/fixdep.c:201: warning: unused variable 's' scripts/basic/fixdep.c: In function 'parse_config_file': scripts/basic/fixdep.c:245: warning: pointer targets in passing argument 1 of 'use_config' differ in signedness scripts/basic/fixdep.c: In function 'parse_dep_file': scripts/basic/fixdep.c:297: error: 'PATH_MAX' undeclared (first use in this function) scripts/basic/fixdep.c:299: warning: pointer targets in passing argument 1 of 'strchr' differ in signedness scripts/basic/fixdep.c:299: warning: pointer targets in assignment differ in signedness scripts/basic/fixdep.c:297: warning: unused variable 's' make[1]: *** [scripts/basic/fixdep] Error 1 make: *** [scripts_basic] Error 2
Offline
vedeja wrote:
...
/ffp/include/bits/local_lim.h:36:26: error: linux/limits.h: No such file or directory
...
/ffp/include/bits/socket.h:317:24: error: asm/socket.h: No such file or directory
It doesn't find limits.h and socket.h.
root@bob:/mnt/HD_a2/ffp/var/packages# grep linux/limits.h * kernel-headers-2.6.9.1-2:./ffp/include/linux/limits.h root@bob:/mnt/HD_a2/ffp/var/packages# grep asm/socket.h * kernel-headers-2.6.9.1-2:./ffp/include/asm/socket.h
Install kernel-headers package.
Offline
fonz wrote:
Install kernel-headers package.
OK, done. Now what? Thanks for helping!
# make menuconfig HOSTCC scripts/basic/fixdep scripts/basic/fixdep.c: In function 'parse_config_file': scripts/basic/fixdep.c:245: warning: pointer targets in passing argument 1 of 'use_config' differ in signedness scripts/basic/fixdep.c: In function 'parse_dep_file': scripts/basic/fixdep.c:299: warning: pointer targets in passing argument 1 of 'strchr' differ in signedness scripts/basic/fixdep.c:299: warning: pointer targets in assignment differ in signedness HOSTCC scripts/basic/split-include scripts/basic/split-include.c: In function 'main': scripts/basic/split-include.c:113: warning: pointer targets in assignment differ in signedness HOSTCC scripts/basic/docproc scripts/basic/docproc.c: In function 'find_export_symbols': scripts/basic/docproc.c:184: warning: pointer targets in assignment differ in signedness scripts/basic/docproc.c:185: warning: pointer targets in assignment differ in signedness scripts/basic/docproc.c:202: warning: pointer targets in passing argument 2 of 'add_new_symbol' differ in signedness scripts/basic/docproc.c: In function 'singfunc': scripts/basic/docproc.c:274: warning: pointer targets in assignment differ in signedness scripts/basic/docproc.c: In function 'parse_file': scripts/basic/docproc.c:296: warning: pointer targets in assignment differ in signedness HOSTCC scripts/kconfig/conf.o In file included from scripts/kconfig/conf.c:14: scripts/kconfig/lkc.h:11:21: error: libintl.h: No such file or directory scripts/kconfig/conf.c: In function 'strip': scripts/kconfig/conf.c:46: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness scripts/kconfig/conf.c: In function 'check_stdin': scripts/kconfig/conf.c:59: warning: implicit declaration of function 'gettext' scripts/kconfig/conf.c:59: warning: incompatible implicit declaration of built-in function 'gettext' scripts/kconfig/conf.c: In function 'conf_askvalue': scripts/kconfig/conf.c:94: warning: pointer targets in passing argument 1 of 'fgets' differ in signedness scripts/kconfig/conf.c: In function 'conf_string': scripts/kconfig/conf.c:187: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness scripts/kconfig/conf.c:188: warning: pointer targets in assignment differ in signedness scripts/kconfig/conf.c: In function 'conf_sym': scripts/kconfig/conf.c:236: warning: pointer targets in passing argument 1 of 'strcmp' differ in signedness scripts/kconfig/conf.c:248: warning: pointer targets in passing argument 1 of 'strcmp' differ in signedness scripts/kconfig/conf.c: In function 'conf_choice': scripts/kconfig/conf.c:350: warning: pointer targets in passing argument 1 of 'fgets' differ in signedness scripts/kconfig/conf.c:360: warning: pointer targets in passing argument 1 of 'atoi' differ in signedness scripts/kconfig/conf.c:384: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness scripts/kconfig/conf.c: In function 'check_conf': scripts/kconfig/conf.c:473: warning: incompatible implicit declaration of built-in function 'gettext' scripts/kconfig/conf.c: In function 'main': scripts/kconfig/conf.c:507: warning: incompatible implicit declaration of built-in function 'gettext' scripts/kconfig/conf.c:533: warning: incompatible implicit declaration of built-in function 'gettext' scripts/kconfig/conf.c:550: warning: incompatible implicit declaration of built-in function 'gettext' scripts/kconfig/conf.c:579: warning: incompatible implicit declaration of built-in function 'gettext' make[1]: *** [scripts/kconfig/conf.o] Error 1 make: *** [menuconfig] Error 2
Offline
vedeja wrote:
Code:
In file included from scripts/kconfig/conf.c:14: scripts/kconfig/lkc.h:11:21: error: libintl.h: No such file or directory
Dead end. Although you could compile and install libintl, there's another problem that slipped my mind. Linux 2.6.12.6 won't compile with gcc4 - sorry.
You need a gcc3 toolchain to compile that old kernel. I recommend cross-compiling the kernel on a faster host.
Offline
fonz, thanks for driving the nail into that...
So, back at the original problem. The driver IS actually updated with the changes I want in later distributions. If anyone has the possibility to compile the 'usbserial.ko' and 'ftdi_sio.ko' kernel modules from a recent distro I would really be grateful. My attempts to set up a toolchain has not been successful so far...you can tell from the above. Well, thanks anyway.
Last edited by vedeja (2008-07-07 18:53:15)
Offline
I guess I'm becoming a bit desperate over this. I attach the source files for someone kind with a little spare time...and a working toolchain.
Last edited by vedeja (2008-07-08 21:41:26)
Offline
I have taken the path of setting up my own cross compiler, using the wiki. I hope I can get the driver compiled that way.
Anyway, I'm stuck on the last few steps of the wiki. The build_u-boot scripts point to 'u-boot-1_1_1' but my zips folder does not contain a corresponding package, only 'u-boot_1_7_3.tgz'. Should I change the script to reflect this other package?
EDIT: forget this, the zips directory has a package named 'u-boot-1_1_1_5181.tgz' which extracts to 'u-boot-1_1_1'. I missed that. Continuing with the CC environment setup.
Last edited by vedeja (2008-07-09 08:38:35)
Offline
I think the toolchain is OK now. Yet:
# make modules make: arm-linux-uclibc-gcc: Command not found CHK include/linux/version.h CC scripts/mod/empty.o /bin/sh: arm-linux-uclibc-gcc: command not found make[2]: *** [scripts/mod/empty.o] Error 127 make[1]: *** [scripts/mod] Error 2 make: *** [scripts] Error 2
Offline
fonz wrote:
The scripts you're using are made for cross-compilation and probably set CC=arm-linux-uclibc-gcc or CROSS_COMPILE=arm-linux-uclibc- in your environment (setpath script?). You should remove these.
When I try this NOW (meaning on my cross compiler - yet I'm not if that's applicable when compiling other than natively?) I get some other errors. Help, I'm still stuck!
$ make modules CHK include/linux/version.h CC scripts/mod/empty.o cc1: error: invalid option "little-endian" cc1: error: invalid option "apcs" cc1: error: invalid option "no-sched-prolog" cc1: error: invalid option "abi=apcs-gnu" scripts/mod/empty.c:1: error: bad value (xscale) for -mtune= switch make[2]: *** [scripts/mod/empty.o] Error 1 make[1]: *** [scripts/mod] Error 2 make: *** [scripts] Error 2
Offline
vedeja wrote:
Code:
$ cc1: error: invalid option "little-endian" cc1: error: invalid option "apcs" cc1: error: invalid option "no-sched-prolog" cc1: error: invalid option "abi=apcs-gnu" scripts/mod/empty.c:1: error: bad value (xscale) for -mtune= switch
It's using the wrong compiler. little-endian, apcs, ... are options that are only understood by a compiler that produces ARM instructions. Instead of clearing CC et al, you should add the path to arm-linux-uclibc-gcc to $PATH.
Offline
fonz wrote:
you should add the path to arm-linux-uclibc-gcc to $PATH.
This was the final problem. Thank you so much, fonz.
I have already crosscompiled a working new version of the driver on my VMWare Ubuntu machine.
Offline