Jedná se o překlad jádra 2.4.22 s moduly pro notebook IBM T30+. Do jádra je zahrnuta formou modulů podpora pro ovládání hardvare notebooku thinkpad
a podpora šifrovaných tunelů cipe
, jakožto i podpora pro zvukový čip alsa-driver
a PC card pcmcia-cs
. V modulu cipe
je upraven soubor cipe/cipe.h
--- cipe/cipe.h.orig Sat Oct 4 16:44:26 2003 +++ cipe/cipe.h Sat Oct 4 16:50:39 2003 @@ -153,6 +153,9 @@ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,0) #define LINUX_23 #endif +#if LINUX_VERSION_CODE == KERNEL_VERSION(2,4,22) +#define LINUX_26 +#endif #if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 91)) && defined(__i386__) #define REGPARM /* __attribute__((regparm,3)) XX needs testing */ #else
a soubor cipe/output.c
--- cipe/output.c.orig Mon Apr 7 00:53:12 2003 +++ cipe/output.c Sat Oct 4 17:41:54 2003 @@ -192,10 +192,10 @@ cipe_ntoa(0, dst), cipe_ntoa(1, tunnel->myaddr), RT_TOS(tos), tunnel->sock->bound_dev_if)); #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,7) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,7) && !defined(LINUX_26) err = ip_route_output(&rt, dst, tunnel->sock->rcv_saddr, RT_TOS(tos), tunnel->sock->bound_dev_if); -#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,5,45) +#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,5,45) && !defined(LINUX_26) err = ip_route_output(&rt, dst, inet_sk(tunnel->sock)->rcv_saddr, RT_TOS(tos), tunnel->sock->bound_dev_if); #else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,45) */ @@ -204,7 +204,11 @@ { .oif = tunnel->sock->bound_dev_if, .nl_u = { .ip4_u = { .daddr = dst, +#if defined(LINUX_26) + .saddr = tunnel->sock->rcv_saddr, +#else .saddr = inet_sk(tunnel->sock)->rcv_saddr, +#endif .tos = RT_TOS(tos) } }, .proto = IPPROTO_UDP }; err = ip_route_output_key(&rt, &fl); @@ -236,7 +240,7 @@ goto tx_error; } -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,45) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,45) && !defined(LINUX_26) mtu = rt->u.dst.pmtu - (cipehdrlen+cipefootlen); #else mtu = dst_pmtu(&rt->u.dst) - (cipehdrlen+cipefootlen); @@ -252,7 +256,7 @@ tunnel->stat.collisions++; goto tx_error; } -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,45) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,45) && !defined(LINUX_26) if (skb->dst && mtu < skb->dst->pmtu) { skb->dst->pmtu = mtu; #else @@ -393,7 +397,7 @@ nf_conntrack_null(skb); #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0) { -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,45) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,45) && !defined(LINUX_26) int err = NF_HOOK(PF_INET, NF_IP_LOCAL_OUT, skb, NULL, rt->u.dst.dev, ip_send); #else
Poté je možno jádro přeložit
# cd /usr/src # tar xjf kernel-source-2.4.22.tar.bz2 # export PATCH_THE_KERNEL=NO # make-kpkg clean # make-kpkg --append-to-version -yoda --revision 12 \ --config menu \ kernel_image modules_image
Při překladu nastaly problémy s moduly alsa-driver
.
/usr/bin/make -C pnp modules make[5]: Entering directory `/usr/src/modules/alsa-driver/support/pnp' make[5]: *** No rule to make target `/usr/src/linux/include/linux/modules/bm_osl.ver', needed by `pnp.o'. Stop. make[5]: Leaving directory `/usr/src/modules/alsa-driver/support/pnp' make[4]: *** [_modsubdir_pnp] Error 2 make[4]: Leaving directory `/usr/src/modules/alsa-driver/support' make[3]: *** [compile] Error 1 make[3]: Leaving directory `/usr/src/modules/alsa-driver' make[2]: *** [build-stamp] Error 2 make[2]: Leaving directory `/usr/src/modules/alsa-driver' make[1]: *** [kdist_image] Error 2 make[1]: Leaving directory `/usr/src/modules/alsa-driver' Module /usr/src/modules/alsa-driver failed. Hit return to Continue