WR1043ND - too big kernel
Piotr Kubaj
pkubaj at riseup.net
Sat Sep 6 17:43:02 UTC 2014
On 09/05/2014 22:46, hiren panchasara wrote:
> On Fri, Sep 5, 2014 at 12:15 PM, Piotr Kubaj <pkubaj at riseup.net> wrote:
>> On 09/05/2014 19:59, hiren panchasara wrote:
>>> On Thu, Sep 4, 2014 at 2:27 PM, hiren panchasara <hiren at freebsd.org> wrote:
>>>> On Thu, Sep 4, 2014 at 1:44 PM, hiren panchasara <hiren at freebsd.org> wrote:
>>>>> On Thu, Sep 4, 2014 at 1:39 PM, Piotr Kubaj <pkubaj at riseup.net> wrote:
>>>>>> Adding following lines to kernel config shrinks size to 1750991 (on
>>>>>> releng/10.0):
>>>>>> makeoptions INLINE_LIMIT=768
>>>>>> nomakeoptions DEBUG
>>>>>> nomakeoptions ALQ
>>>>>> nooptions INET6
>>>>>> options NO_SWAPPING
>>>>>> nooptions HWPMC_HOOKS
>>>>>> nodevice hwpmc
>>>>>> nodevice hwpmc_mips24k
>>>>>> nooptions KDB
>>>>>>
>>>>>> Any ideas what else I can remove? :P
>>>>>
>>>>> I see you already have r255656.
>>>>> Let me try to build for -head and see.
>>>>
>>>>
>>>>> [mktplinkfw] *** error: kernel image is too big. Max[1572352] kernel img [2000794]
>>>>
>>>> ugh. Need to trim more. I'll see if I can find time this week to check
>>>> where/what we can trim.
>>>
>>> Randomly disabled a ton of things and then I could create small enough
>>> kernel. I'm not even sure if things will actually work.
>>>
>>> We've grown too big, it seems :-(
>>>
>>> Diffs against -head.
>>>
>>> Index: sys/mips/conf/TP-WN1043ND
>>> ===================================================================
>>> --- sys/mips/conf/TP-WN1043ND (revision 271137)
>>> +++ sys/mips/conf/TP-WN1043ND (working copy)
>>> @@ -16,7 +16,7 @@
>>> options AR71XX_REALMEM=32*1024*1024
>>>
>>> # i2c GPIO bus
>>> -device gpioiic
>>> +#device gpioiic
>>> device iicbb
>>> device iicbus
>>> device iic
>>> @@ -28,7 +28,7 @@
>>> device rtl8366rb
>>>
>>> # read MSDOS formatted disks - USB
>>> -options MSDOSFS
>>> +#options MSDOSFS
>>>
>>> # Enable the uboot environment stuff rather then the
>>> # redboot stuff.
>>> @@ -57,3 +57,29 @@
>>> nooptions WITNESS_SKIPSPIN
>>> nooptions DEBUG_REDZONE
>>> nooptions DEBUG_MEMGUARD
>>> +
>>> +nooptions DDB
>>> +nooptions KDB
>>> +nooptions ALQ
>>> +nooptions HWPMC_HOOKS
>>> +nodevice hwpmc
>>> +nodevice hwpmc_mips24k
>>> +nooptions INET6 #InterNETworking
>>> +
>>> +nooptions ATH_DEBUG
>>> +nooptions AH_DEBUG
>>> +nooption AH_DEBUG_ALQ
>>> +nooptions IEEE80211_DEBUG
>>> +nooptions IEEE80211_SUPPORT_MESH
>>> +nooptions IEEE80211_SUPPORT_TDMA
>>> +nooptions IEEE80211_ALQ # 802.11 ALQ logging support
>>> +
>>> +nodevice usb
>>> +nooptions USB_EHCI_BIG_ENDIAN_DESC
>>> +nooptions USB_DEBUG
>>> +nooptions USB_HOST_ALIGN
>>> +nodevice umass
>>> +nodevice ehci
>>> +
>>> +nodevice gpio
>>> +nodevice gpioled
>>>
>> I could've done it myself, but I need usb and GPIO is required for usb,
>> so that needs to stay. That said, I removed PSEUDOFS (I don't need
>> /proc) and some of what you mailed, so now it's smaller, but still too
>> large (1682325). Here are the contents (still on releng/10.0)
>> # Force the board memory - 64mb
>> options AR71XX_REALMEM=64*1024*1024
>>
>> makeoptions INLINE_LIMIT=768
>> nomakeoptions DEBUG
>> nomakeoptions ALQ
>> nooptions INET6
>> options NO_SWAPPING
>> nooptions HWPMC_HOOKS
>> nodevice hwpmc
>> nodevice hwpmc_mips24k
>> nooptions USB_DEBUG
>> nooptions IEEE80211_DEBUG
>> nooptions PSEUDOFS
>> nooptions ATH_DEBUG
>> nooptions AH_DEBUG
>> nooption AH_DEBUG_ALQ
>> nooptions IEEE80211_SUPPORT_MESH
>> nooptions IEEE80211_SUPPORT_TDMA
>> nooptions IEEE80211_ALQ # 802.11 ALQ logging support
>>
>> # i2c GPIO bus
>> device gpioiic
>> device iicbb
>> device iicbus
>> device iic
>>
>> # ethernet switch device
>> device etherswitch
>>
>> # RTL8366RB support
>> device rtl8366rb
>>
>> # Enable the uboot environment stuff rather then the
>> # redboot stuff.
>> options AR71XX_ENV_UBOOT
>>
>> # uncompress - to boot natively from flash
>> device geom_uncompress
>> options GEOM_UNCOMPRESS
>>
>> # Used for the static uboot partition map
>> device geom_map
>>
>> # Boot off of the rootfs, as defined in the geom_map setup.
>> options ROOTDEVNAME=\"ufs:map/rootfs.uncompress\"
>>
>> # We bite the performance overhead for now; the kernel won't
>> # fit if the mutexes are inlined.
>> options MUTEX_NOINLINE
>> options RWLOCK_NOINLINE
>> options SX_NOINLINE
>>
>> # Remove everything we don't need. We need a _really_ small kernel!
>> nooptions INVARIANTS
>> nooptions INVARIANT_SUPPORT
>> nooptions WITNESS
>> nooptions WITNESS_SKIPSPIN
>> nooptions DEBUG_REDZONE
>> nooptions DEBUG_MEMGUARD
>> nooptions DDB
>> nooptions KDB
>>
>> It doesn't need to be much smaller now, but what made it so large? Why
>> did it work a year ago with 10.0-CURRENT? Since 10.0-RELEASE is too
>> large and there are working images with 10.0-CURRENT from August 2013 at
>> http://www.strugglingcoder.info/pkgs/TP-WN1043ND.factory.bin (it seems
>> to be actually generated by you), something must have happened then and
>> later, when CURRENT went up to 11.
>
> "More code" happened :-)
>
> This clearly is not a good sign. I'll try to spend some time to narrow
> the source down.
> We _should_ at least be able to "not-include" that portion.
>
> cheers,
> Hiren
>
Since I'm going to anyway run it with a pendrive, isn't it possible to
install only /boot to flash and the rest of rootfs to that pendrive?
That would make it possible for the kernel to have a bigger size.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-mips/attachments/20140906/8c295f91/attachment.sig>
More information about the freebsd-mips
mailing list