uname - r
 
git clone -- depth=1 https:/ / github. com/raspberrypi/linux -- branch rpi-5. 15. y
$ sudo apt update
$ sudo apt install raspberrypi-kernel-headers
$ sudo apt install bc libncurses5-dev bison flex libssl-dev make libc6-dev
cd linux/drivers/usb/serial/
sudo nano drivers/usb/serial/option. c
static const struct usb_device_id option_ids[ ]  =  { 
{  USB_DEVICE_AND_INTERFACE_INFO( 0x2c7c, 0x0900, 0xff, 0x00, 0x00)  } ,
static struct usb_serial_driver option_1port_device =  { 
.. .. .. 
.suspend =  usb_wwan_suspend,
.resume =  usb_wwan_resume,
.reset_resume =  usb_wwan_resume,
} ; 
sudo nano drivers/usb/serial/usb_wwan. c
static struct urb * usb_wwan_setup_urb( struct usb_serial * serial,  int endpoint, 
 int dir ,  void * ctx,  char * buf,  int len, void ( * callback)  ( struct urb * ) ) 
{ 
	. . . . . . 
	
	usb_fill_bulk_urb( urb,  serial->dev, usb_sndbulkpipe( serial->dev,  endpoint)  |  dir , buf,  len,  callback,  ctx) ; 
	
	if  ( dir  == USB_DIR_OUT) 
	{ 
		struct usb_device_descriptor * desc = &serial->dev->descriptor; 
		if  ( desc->idVendor == cpu_to_le16( 0x2C7C) ) 
		{ 
			urb->transfer_flags | = URB_ZERO_PACKET; 
		} 
	} 
	
	return  urb; 
} 
KERNEL=kernel8  
sudo make bcm2711_defconfig
sudo make - j4 modules 
sudo make modules_install