I want to recompile the kernel so that I can use my verizon evdo card. I have this working beautifully with kubuntu dapper on a p4 dell laptop. now i'm trying on a thinkpad x31.
so i apply the patch and compile the kernel with one change to the default ubuntu kernel config
here's the patch:
ftp://ftp.sonic.net/pub/users/qm/PC5740/usb_bufsz_linux-2.6.14-ulmo
====================
--- ./drivers/usb/class/cdc-acm.c.~1~ 2005-11-12 21:28:19.000000000 -0800
+++ ./drivers/usb/class/cdc-acm.c 2005-12-04 10:35:10.000000000 -0800
@@ -73,6 +73,7 @@
#define DRIVER_AUTHOR "Armin Fuerst, Pavel Machek, Johannes Erdfelt, Vojtech Pavlik"
#define DRIVER_DESC "USB Abstract Control Model driver for USB modems and ISDN adapters"
+static ushort maxszc = 0, maxszw = 0, maxszr = 0;
static struct usb_driver acm_driver;
static struct tty_driver *acm_tty_driver;
static struct acm *acm_table[ACM_TTY_MINORS];
@@ -833,9 +834,9 @@
}
memset(acm, 0, sizeof(struct acm));
- ctrlsize = le16_to_cpu(epctrl->wMaxPacketSize);
- readsize = le16_to_cpu(epread->wMaxPacketSize);
- acm->writesize = le16_to_cpu(epwrite->wMaxPacketSize);
+ ctrlsize = (le16_to_cpu(epctrl->wMaxPacketSize) > maxszc)?le16_to_cpu(epctrl->wMaxPacketSize):maxszc;
+ readsize = (le16_to_cpu(epread->wMaxPacketSize) > maxszr)?le16_to_cpu(epread->wMaxPacketSize):maxszr;
+ acm->writesize = (le16_to_cpu(epwrite->wMaxPacketSize) > maxszw)?le16_to_cpu(epwrite->wMaxPacketSize):maxszw;
acm->control = control_interface;
acm->data = data_interface;
acm->minor = minor;
@@ -1084,4 +1085,9 @@
MODULE_AUTHOR( DRIVER_AUTHOR );
MODULE_DESCRIPTION( DRIVER_DESC );
MODULE_LICENSE("GPL");
-
+module_param(maxszc, ushort,0);
+MODULE_PARM_DESC(maxszc,"User specified USB endpoint control size");
+module_param(maxszr, ushort,0);
+MODULE_PARM_DESC(maxszr,"User specified USB endpoint read size");
+module_param(maxszw, ushort,0);
+MODULE_PARM_DESC(maxszw,"User specified USB endpoint write size");
--- ./drivers/usb/serial/usb-serial.c.~1~ 2005-11-12 21:28:19.000000000 -0800
+++ ./drivers/usb/serial/usb-serial.c 2005-12-04 10:30:04.000000000 -0800
@@ -361,6 +361,7 @@
drivers depend on it.
*/
+static ushort maxSize = 0;
static int debug;
static struct usb_serial *serial_table[SERIAL_TTY_MINORS]; /* initially all NULL */
static LIST_HEAD(usb_serial_driver_list);
@@ -1061,7 +1062,7 @@
dev_err(&interface->dev, "No free urbs available\n");
goto probe_error;
}
- buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
+ buffer_size = (le16_to_cpu(endpoint->wMaxPacketSize) > maxSize)?le16_to_cpu(endpoint->wMaxPacketSize):maxSize;
port->bulk_in_size = buffer_size;
port->bulk_in_endpointAddress = endpoint->bEndpointAddress;
port->bulk_in_buffer = kmalloc (buffer_size, GFP_KERNEL);
@@ -1085,7 +1086,7 @@
dev_err(&interface->dev, "No free urbs available\n");
goto probe_error;
}
- buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
+ buffer_size = (le16_to_cpu(endpoint->wMaxPacketSize) > maxSize)?le16_to_cpu(endpoint->wMaxPacketSize):maxSize;
port->bulk_out_size = buffer_size;
port->bulk_out_endpointAddress = endpoint->bEndpointAddress;
port->bulk_out_buffer = kmalloc (buffer_size, GFP_KERNEL);
@@ -1110,7 +1111,7 @@
dev_err(&interface->dev, "No free urbs available\n");
goto probe_error;
}
- buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
+ buffer_size = (le16_to_cpu(endpoint->wMaxPacketSize) > maxSize)?le16_to_cpu(endpoint->wMaxPacketSize):maxSize;
port->interrupt_in_endpointAddress = endpoint->bEndpointAddress;
port->interrupt_in_buffer = kmalloc (buffer_size, GFP_KERNEL);
if (!port->interrupt_in_buffer) {
@@ -1137,7 +1138,7 @@
dev_err(&interface->dev, "No free urbs available\n");
goto probe_error;
}
- buffer_size = le16_to_cpu(endpoint->wMaxPacketSize);
+ buffer_size = (le16_to_cpu(endpoint->wMaxPacketSize) > maxSize)?le16_to_cpu(endpoint->wMaxPacketSize):maxSize;
port->interrupt_out_size = buffer_size;
port->interrupt_out_endpointAddress = endpoint->bEndpointAddress;
port->interrupt_out_buffer = kmalloc (buffer_size, GFP_KERNEL);
@@ -1434,3 +1435,5 @@
module_param(debug, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(debug, "Debug enabled or not");
+module_param(maxSize, ushort,0);
+MODULE_PARM_DESC(maxSize,"User specified USB endpoint size");
====================
after applying the patch
I changed in the config was the processor from general 386 to pentium M, thats it. then compile and it exits with an error at:
====================
CC [M] drivers/usb/net/zd1211/zd1205.o
In file included from drivers/usb/net/zd1211/zd1205.c:37:
drivers/usb/net/zd1211/zdinlinef.h: In function ‘Cfg_CtrlSetting’:
drivers/usb/net/zd1211/zdinlinef.h:307: warning: ‘LenInUs’ may be used uninitialized in this function
drivers/usb/net/zd1211/zdinlinef.h:308: warning: ‘NextLenInUs’ may be used uninitialized in this function
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205_house_keeping’:
drivers/usb/net/zd1211/zd1205.c:790: warning: unused variable ‘tmpvalue’
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205_transmit_cleanup’:
drivers/usb/net/zd1211/zd1205.c:1109: warning: unused variable ‘i’
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205_tx_isr’:
drivers/usb/net/zd1211/zd1205.c:1139: warning: unused variable ‘next_sw_tcb’
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205_start_ru’:
drivers/usb/net/zd1211/zd1205.c:1739: warning: unused variable ‘loopCnt’
drivers/usb/net/zd1211/zd1205.c:1733: warning: unused variable ‘tmp_value’
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205_recycle_rx’:
drivers/usb/net/zd1211/zd1205.c:1770: warning: unused variable ‘buffer_found’
drivers/usb/net/zd1211/zd1205.c:1766: warning: unused variable ‘tmp_value’
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205_sleep_reset’:
drivers/usb/net/zd1211/zd1205.c:2883: warning: unused variable ‘flags’
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205_process_wakeup’:
drivers/usb/net/zd1211/zd1205.c:2996: warning: unused variable ‘tmpvalue’
drivers/usb/net/zd1211/zd1205.c:2995: warning: unused variable ‘TSFTimer’
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205_watchdog’:
drivers/usb/net/zd1211/zd1205.c:3177: warning: unused variable ‘tmpvalue’
drivers/usb/net/zd1211/zd1205.c:3174: warning: unused variable ‘diffTime’
drivers/usb/net/zd1211/zd1205.c:3173: warning: unused variable ‘i’
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205wext_siwscan’:
drivers/usb/net/zd1211/zd1205.c:4021: warning: unused variable ‘macp’
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205_translate_scan’:
drivers/usb/net/zd1211/zd1205.c:4041: warning: unused variable ‘macp’
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205_load_card_setting’:
drivers/usb/net/zd1211/zd1205.c:4868: warning: unused variable ‘j’
drivers/usb/net/zd1211/zd1205.c:4861: warning: unused variable ‘stat’
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205_save_card_setting’:
drivers/usb/net/zd1211/zd1205.c:5015: warning: unused variable ‘i’
drivers/usb/net/zd1211/zd1205.c:5008: warning: unused variable ‘stat’
drivers/usb/net/zd1211/zd1205.c: In function ‘zd1205_clear_structs’:
drivers/usb/net/zd1211/zd1205.c:5127: warning: unused variable ‘macp’
drivers/usb/net/zd1211/zd1205.c: In function ‘zdcb_setup_next_send’:
drivers/usb/net/zd1211/zd1205.c:5161: warning: unused variable ‘loopCnt’
drivers/usb/net/zd1211/zd1205.c:5159: warning: unused variable ‘lock_flag’
drivers/usb/net/zd1211/zd1205.c:5150: warning: unused variable ‘tmp_value3’
drivers/usb/net/zd1211/zd1205.c:5150: warning: unused variable ‘tmp_value’
drivers/usb/net/zd1211/zd1205.c:5145: warning: unused variable ‘next_sw_tcb’
drivers/usb/net/zd1211/zdinlinef.h:307: warning: ‘LenInUs’ may be used uninitialized in this function
drivers/usb/net/zd1211/zdinlinef.h:308: warning: ‘NextLenInUs’ may be used uninitialized in this function
drivers/usb/net/zd1211/zd1205.c: At top level:
drivers/usb/net/zd1211/zd1205.c:3534: warning: ‘zd1205_ioctl_getsens’ defined but not used
drivers/usb/net/zd1211/zd1205.c:3834: warning: ‘zd1205wext_giwname’ defined but not used
drivers/usb/net/zd1211/zd1205.c:3850: warning: ‘zd1205wext_siwfreq’ defined but not used
drivers/usb/net/zd1211/zd1205.c:3891: warning: ‘zd1205wext_siwrate’ defined but not used
drivers/usb/net/zd1211/zd1205.c:3913: warning: ‘zd1205wext_siwrts’ defined but not used
drivers/usb/net/zd1211/zd1205.c:3923: warning: ‘zd1205wext_siwfrag’ defined but not used
drivers/usb/net/zd1211/zd1205.c:3928: warning: ‘zd1205wext_giwtxpow’ defined but not used
drivers/usb/net/zd1211/zd1205.c:3933: warning: ‘zd1205wext_siwtxpow’ defined but not used
drivers/usb/net/zd1211/zd1205.c:3938: warning: ‘zd1205wext_giwap’ defined but not used
drivers/usb/net/zd1211/zd1205.c:3949: warning: ‘zd1205wext_siwencode’ defined but not used
drivers/usb/net/zd1211/zd1205.c:3954: warning: ‘zd1205wext_giwencode’ defined but not used
CC [M] drivers/usb/net/zd1211/zdasocsvc.o
drivers/usb/net/zd1211/zdasocsvc.c: In function ‘Re_Asociate’:
drivers/usb/net/zd1211/zdasocsvc.c:268: warning: label ‘wpa_check_ok’ defined but not used
CC [M] drivers/usb/net/zd1211/zdauthreq.o
CC [M] drivers/usb/net/zd1211/zdauthrsp.o
CC [M] drivers/usb/net/zd1211/zdmmrx.o
CC [M] drivers/usb/net/zd1211/zdshared.o
CC [M] drivers/usb/net/zd1211/zdhci.o
drivers/usb/net/zd1211/zdhci.c: In function ‘zd_ReceivePkt’:
drivers/usb/net/zd1211/zdhci.c:288: warning: unused variable ‘Type’
drivers/usb/net/zd1211/zdhci.c: In function ‘zd_ResetDevice’:
drivers/usb/net/zd1211/zdhci.c:886: warning: unused variable ‘i_state’
drivers/usb/net/zd1211/zdhci.c: In function ‘zd_SwitchNextCH’:
drivers/usb/net/zd1211/zdhci.c:1152: warning: unused variable ‘cap’
drivers/usb/net/zd1211/zdhci.c:1151: warning: unused variable ‘j’
drivers/usb/net/zd1211/zdhci.c:1151: warning: unused variable ‘i’
drivers/usb/net/zd1211/zdhci.c:1147: warning: unused variable ‘tmp’
drivers/usb/net/zd1211/zdhci.c:1146: warning: unused variable ‘i_state’
CC [M] drivers/usb/net/zd1211/zdglobal.o
CC [M] drivers/usb/net/zd1211/zdencrypt.o
CC [M] drivers/usb/net/zd1211/zdpmfilter.o
drivers/usb/net/zd1211/zdpmfilter.c: In function ‘TxSend’:
drivers/usb/net/zd1211/zdpmfilter.c:155: warning: unused variable ‘RC4Key’
drivers/usb/net/zd1211/zdpmfilter.c:149: warning: unused variable ‘icv’
CC [M] drivers/usb/net/zd1211/zdpsmon.o
drivers/usb/net/zd1211/zdpsmon.c: In function ‘RxInfoIndicate’:
drivers/usb/net/zd1211/zdpsmon.c:351: warning: ‘asoc’ may be used uninitialized in this function
drivers/usb/net/zd1211/zdpsmon.c:350: warning: ‘oldPsm’ may be used uninitialized in this function
drivers/usb/net/zd1211/zdpsmon.c: In function ‘zd_SetKeyInfo’:
drivers/usb/net/zd1211/zdpsmon.c:600: warning: unused variable ‘KeyRsc’
CC [M] drivers/usb/net/zd1211/zdsynch.o
drivers/usb/net/zd1211/zdsynch.c: In function ‘ProbeRsp_Beacon’:
drivers/usb/net/zd1211/zdsynch.c:210: warning: unused variable ‘pWPA’
CC [M] drivers/usb/net/zd1211/zdbuf.o
drivers/usb/net/zd1211/zdbuf.c: In function ‘initFdescBuf’:
drivers/usb/net/zd1211/zdbuf.c:129: warning: unused variable ‘pFrmDesc’
CC [M] drivers/usb/net/zd1211/zdhw.o
drivers/usb/net/zd1211/zdhw.c: In function ‘HW_Set_AL2230_RF_Chips’:
drivers/usb/net/zd1211/zdhw.c:630: warning: ‘tmpvalue’ is used uninitialized in this function
drivers/usb/net/zd1211/zdhw.c: In function ‘HW_GetNow’:
drivers/usb/net/zd1211/zdhw.c:1332: warning: unused variable ‘reg’
drivers/usb/net/zd1211/zdhw.c: In function ‘HW_RadioOnOff’:
drivers/usb/net/zd1211/zdhw.c:1372: warning: ‘tmpvalue’ is used uninitialized in this function
drivers/usb/net/zd1211/zdhw.c: In function ‘HW_OverWritePhyRegFromE2P’:
drivers/usb/net/zd1211/zdhw.c:1697: warning: unused variable ‘PhyValue’
drivers/usb/net/zd1211/zdhw.c:1696: warning: unused variable ‘PhyIdx’
drivers/usb/net/zd1211/zdhw.c:1695: warning: unused variable ‘i’
drivers/usb/net/zd1211/zdhw.c:1693: warning: unused variable ‘NumOfReg’
drivers/usb/net/zd1211/zdhw.c: In function ‘HW_UpdateIntegrationValue’:
drivers/usb/net/zd1211/zdhw.c:1748: warning: unused variable ‘reg’
CC [M] drivers/usb/net/zd1211/zddebug.o
drivers/usb/net/zd1211/zddebug.c: In function ‘zd1205_dump_regs’:
drivers/usb/net/zd1211/zddebug.c:57: warning: unused variable ‘flags’
CC [M] drivers/usb/net/zd1211/zdtkipseed.o
CC [M] drivers/usb/net/zd1211/zdmic.o
DEVLIST drivers/usb/net/zd1211/zddevlist.h
make[5]: *** [drivers/usb/net/zd1211/zddevlist.h] Error 1
make[4]: *** [drivers/usb/net/zd1211] Error 2
make[3]: *** [drivers/usb/net] Error 2
make[2]: *** [drivers/usb] Error 2
make[1]: *** [drivers] Error 2
make[1]: Leaving directory `/usr/src/linux-source-2.6.15'
make: *** [stamp-build] Error 2
==========================
my compile command if you're wondering:
make-kpkg --initrd --append-to-version=-fizz1 kernel_image kernel_headers
I am using a completely up to date xubuntu dapper.1
gcc (GCC) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
Unconfirmed ->Rejected.
As per https:/ /wiki.ubuntu. com/KernelCusto mBuild
"Building and using a custom kernel will make it very difficult to get support for your system. You will not be allowed to file bugs on the custom-built kernel (if you do, they will be Rejected without explanation)."