Missing filesystem modules in -virtual package

Bug #732046 reported by Loïc Minier on 2011-03-09
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Undecided
Andy Whitcroft
Lucid
Undecided
Unassigned
Maverick
Undecided
Tim Gardner
Natty
Undecided
Unassigned
Oneiric
Undecided
Andy Whitcroft

Bug Description

Hi

linux-image-*-virtual-* have an explicit whitelist of modules to install in the .deb; even if all fs modules get built, only a subset actually gets copied in the .deb.

Some important modules are missing:
- fat is included but nls_* modules aren't
- fuse is missing

I'm not using them, but I find some missing modules suspicious, like gfs2 or 9p; I guess this was done to save space and is a tradeoff.

These modules are missing since lucid and onwards.

Thanks,

Loïc Minier (lool) wrote :

You could also consider offering the non-whitelisted modules in a -extra-modules package?

Loïc Minier (lool) wrote :

lucid unaffected

Changed in linux (Ubuntu Lucid):
status: New → Invalid
Changed in linux (Ubuntu Natty):
assignee: nobody → Canonical Kernel Team (canonical-kernel-team)
Tim Gardner (timg-tpi) wrote :

If you really want all of these extra modules, then install the linux-image-server package. The intent of the -virtual package is to be light weight and quick booting.

Changed in linux (Ubuntu Natty):
status: New → Won't Fix
Changed in linux (Ubuntu Maverick):
status: New → Won't Fix
Changed in linux (Ubuntu):
status: New → Won't Fix
Loïc Minier (lool) wrote :

I'm reopening to motivate this use case further:
* vfat/fat is included in -virtual, but is useless because we're missing the nls_cp* modules
* fuse would be useful for mounting S3 buckets and is small

Also, I tried using -server kernels, but:
a) they don't support Xen, so that many things don't work, e.g. console or reboot
b) they aren't picked up by the special version of grub for ec2, because they aren't Xen aware

So while these are separate bugs, it kind of lessens the usefulness of the "just use the -server package" advice.

Changed in linux (Ubuntu):
status: Won't Fix → New

On Fri, 11 Mar 2011, Loïc Minier wrote:

> I'm reopening to motivate this use case further:
> * vfat/fat is included in -virtual, but is useless because we're missing the nls_cp* modules
> * fuse would be useful for mounting S3 buckets and is small
>
> Also, I tried using -server kernels, but:
> a) they don't support Xen, so that many things don't work, e.g. console or reboot

> b) they aren't picked up by the special version of grub for ec2, because
> they aren't Xen aware

If 'a' is fixed above, then I want to fix 'b'. And acutally i think that
in some cases the -server kernel will boot on ec2.

However, the -virtual kernel is no longer a strict subset of the -server.
The modules *may* be binary compatible at the moment, but there is nothing
that is guaranteeing that.

Tim Gardner (timg-tpi) wrote :

Xen components are built as modules in the -server flavour, whereas they are built into the -virtual flavour. Can this be solved with some initramfs magic?

Incidentally, that is the _only_ substantive difference between -server and -virtual (packaging differences notwithstanding).

Loïc Minier (lool) wrote :

I would personally find it easier to have a linux-virtual-extra-modules.deb rather than switching the flavor entirely

Scott Moser (smoser) wrote :

On Mon, 14 Mar 2011, Tim Gardner wrote:

> Xen components are built as modules in the -server flavour, whereas they
> are built into the -virtual flavour. Can this be solved with some
> initramfs magic?
>
> Incidentally, that is the _only_ substantive difference between -server
> and -virtual (packaging differences notwithstanding).

there is at least 1 patch I'm aware of that would not be able to be
carried in -server. I believe the -virtual kernel sets the max memory to
70G or some such number. That obviously would not be suitable for
-server, but is required to run successfully in EC2's t1.micro instances.
Stefan can surely elaborate on that. I suspect that this is what Loic hit
when his -server kernels failed to boot on EC2.

The main issue here is that as soon as we split off -virtual from
sub-flavour to flavour, it diverged. There is value in that divergence
(we can boot on all Ec2 instance types), but it also is a pain.

The smaller size of -virtual is very desirable.

$ apt-cache show linux-image-2.6.38-6-virtual | grep ^Installed-Size
Installed-Size: 32644
$ apt-cache show linux-image-2.6.38-6-server | grep ^Installed-Size
Installed-Size: 143520

Our UEC images occupy ~ 600M of disk space installed, so that 110M is
substantial.

Stefan Bader (smb) wrote :

Well, the memory option was XEN_MAX_DOMAIN_MEMORY, so that only affects how much space is reserved for Xen memory mappings. It is not that much that a server might miss the memory. And IIRC with Natty it is not configurable at all and virtual and server will be the same.

I would say this really is a decision about how much we really need for the virtual (or ec2) packages. Most of the difference in size should be that we don't need to include most of the hardware specific drivers. Probably this needs checking how much we would blow up virtual by which fs and is that likely be used in a vm environment.

Having a additional package created (only for the virtual build) would require reworking the build scripting (not even sure it is doable) which I would rather avoid. It also would require meta package work as well.

So when talking about nls and fuse, we talk about another megabyte on 64bit, slightly less on 32bit. That is when we include all of the nls modules. Would they be useful enough to carry?

Loïc Minier (lool) wrote :

Note that I *did* get -server kernels to boot, but it was painful and these were lacking some features.

During the UDS session, did you folks consider providing an opt-in package with the missing modules rather than not installing them at all?

Loïc Minier (lool) wrote :

Ah sorry Stefan, missed your comment; thanks for the explanations on the separate package.

Loïc Minier (lool) wrote :

Maybe a compromise would be to include only the default vfat codepage (437)?

Loïc Minier (lool) wrote :

Ignore the fuse part of the request, fuse is built into the kernel so that's fine; the fuse/*.ko was cuse, which is for char devices.

Andy Whitcroft (apw) on 2011-03-16
Changed in linux (Ubuntu Natty):
status: Won't Fix → New
Tim Gardner (timg-tpi) wrote :

SRU Justification

Impact: FAT file systems cannot be loaded because of missing dependencies

Patch Description: Add default NLS code pages to the -virtual flavour

Changed in linux (Ubuntu Maverick):
assignee: nobody → Tim Gardner (timg-tpi)
status: Won't Fix → Fix Committed
Changed in linux (Ubuntu Natty):
assignee: Canonical Kernel Team (canonical-kernel-team) → Tim Gardner (timg-tpi)
status: New → Fix Committed
Andy Whitcroft (apw) on 2011-03-16
Changed in linux (Ubuntu Natty):
assignee: Tim Gardner (timg-tpi) → Andy Whitcroft (apw)
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 2.6.38-7.36

---------------
linux (2.6.38-7.36) natty; urgency=low

  [ Andy Whitcroft ]

  * Revert "SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler
    optimisation"
  * purge last vestiges of maverick
  * [Config] switch CONFIG_FB_VESA back to module

  [ Chris Wilson ]

  * SAUCE: drm/i915: Fix pipelined fencing
    - LP: #717114

  [ Loïc Minier ]

  * Include nls_cp437 module in virtual for fat
    - LP: #732046
  * Support arch= cross-compilation for any arch
  * Fix couple of typos in 0-common-vars.mk
  * Enforce DEFAULT_MMAP_MIN_ADDR on armhf
  * Add armhf to Debian -> Linux arch map
  * Add initial armhf.mk
  * Enable common packages for armhf

  [ Upstream Kernel Changes ]

  * Yama: fix default relationship to check thread group
    - LP: #737676
 -- Andy Whitcroft <email address hidden> Fri, 18 Mar 2011 18:18:02 +0000

Changed in linux (Ubuntu Natty):
status: Fix Committed → Fix Released

Accepted linux into maverick-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Steve Conklin (sconklin) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed' to 'verification-done'.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-maverick
Loïc Minier (lool) wrote :

Before the upgrade:
linaro-media-create --image_file beagle.img --image_size 1G --dev beagle --rootfs ext4 --hwpack hwpack_linaro-omap3_20110428-0_armel_supported.tar.gz --binary linaro-natty-nano-tar-20110428-0.tar.gz --hwpack-force-yes
[...]

This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail or so

Traceback (most recent call last):
  File "/usr/bin/linaro-media-create", line 141, in <module>
    args.is_live, args.is_lowmem, args.consoles)
  File "/usr/lib/pymodules/python2.6/linaro_image_tools/media_create/boards.py", line 344, in populate_boot
    as_root=True).wait()
  File "/usr/lib/pymodules/python2.6/linaro_image_tools/cmd_runner.py", line 87, in wait
    raise SubcommandNonZeroReturnValue(self._my_args, returncode)
linaro_image_tools.cmd_runner.SubcommandNonZeroReturnValue: Sub process "['sudo', '-E', 'mount', '/dev/loop0', '/tmp/tmpkxRhQf/boot-disc']" returned a non-zero value: 32

dmesg reports:

[ 641.569705] FAT: codepage cp437 not found

This is with ami-08f40561 which uses 2.6.35-24-virtual on boot and upon reboot; linux-image-2.6.35-24-virtual 2.6.35-24.42 is installed; after running sudo update-grub, update-grub2, and update-legacy-grub2 and rebooting I still get 2.6.35-24-virtual (this is just to make sure I'm testing the latest released maverick version in UEC images).

After installing http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-image-2.6.35-29-virtual_2.6.35-29.51_amd64.deb which triggers an update-grub-foo run and rebooting I get 2.6.35-29-virtual and the linaro-media-create test case fails with a different module:
[ 183.868507] FAT: IO charset iso8859-1 not found

So I'm afraid listing just the cp437 module wasn't enough, sorry about that; it seems iso8859-1 is the only additional one needed as well. I've rebuilt linux_2.6.35-29.51.dsc with fs/nls/nls_iso8859-1.ko in debian.master/control.d/virtual.inclusion-list and installed the resulting package, and the linaro-media-create test case passed.

Loïc Minier (lool) wrote :

Unfortunately, also affects natty with the same lack of iso8859-1 :-/

tested with linux-image-2.6.38-8-virtual 2.6.38-8.42

Changed in linux (Ubuntu Natty):
assignee: Andy Whitcroft (apw) → nobody
status: Fix Released → Triaged
Tim Gardner (timg-tpi) wrote :

Added this patch to Maverick/Natty/Oneiric

Changed in linux (Ubuntu Natty):
status: Triaged → Fix Committed
Changed in linux (Ubuntu Oneiric):
status: Fix Released → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 2.6.39-0.5

---------------
linux (2.6.39-0.5) oneiric; urgency=low

  [ Herton Ronaldo Krzesinski ]

  * SAUCE: Revert "x86, hibernate: Initialize mmu_cr4_features during boot"
    - LP: #764758

  [ Leann Ogasawara ]

  * rebase to v2.6.39-rc5
  * [Config] updateconfigs following rebase to v2.6.39-rc5

  [ Paolo Pisati ]

  * [Config] s/USB_MUSB_TUSB6010/USB_MUSB_OMAP2PLUS/ on omap3 to get musb
    - LP: #759913

  [ Stefan Bader ]

  * Include nls_iso8859-1 for virtual images
    - LP: #732046

  [ Major Kernel Changes ]

  * rebase from v2.6.39-rc4 to v2.6.39-rc5
 -- Leann Ogasawara <email address hidden> Wed, 27 Apr 2011 06:39:42 -0700

Changed in linux (Ubuntu Oneiric):
status: Fix Committed → Fix Released
Loïc Minier (lool) wrote :

I rebuilt the natty kernel with the iso8859-1 NLS module added to the inclusion-list and installed it under a natty EC2 instance; this fixed the issue I was having and I could mount vfat fses (linaro-media-create passes).

Herton R. Krzesinski (herton) wrote :

This bug is awaiting verification that the kernel for natty in -proposed
solves the problem. Please test the kernel and update this bug with the
results. If the problem is solved, change the tag
'verification-needed-natty' to 'verification-done-natty'.

If verification is not done by one week from today, this fix will be
dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how
to enable and use -proposed. Thank you!

Note: verification only required for natty for now, maverick kernels will come later.

tags: added: verification-needed-natty
Scott Moser (smoser) wrote :

$ for v in 2.6.38-8-virtual 2.6.38-10-virtual; do ( cd /lib/modules/$v && find . -type f | sort > /tmp/$v.list ) ; done
$ diff -u /tmp/2.6.38-8-virtual.list /tmp/2.6.38-10-virtual.list | grep "^[+-]"
--- /tmp/2.6.38-8-virtual.list 2011-06-09 03:15:05.269600801 +0000
+++ /tmp/2.6.38-10-virtual.list 2011-06-09 03:15:05.289597140 +0000
+./kernel/fs/cachefiles/cachefiles.ko
+./kernel/fs/nls/nls_iso8859-1.ko
+./kernel/lib/test-kstrtox.ko

So, the file changes in 2.6.38-8-virtual -> 2.6.38-10-virtual are listed above (adding of nls_iso8859-1.ko and 2 others).

verification-done-natty.

Steve Conklin (sconklin) on 2011-06-13
tags: added: verification-done-natty
removed: verification-needed-natty
Herton R. Krzesinski (herton) wrote :

A new kernel for Maverick is available fixing remaining problems that were reported here, and this bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-maverick' to 'verification-done-maverick'.

If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

Steve Conklin (sconklin) wrote :

The verification period for this kernel will close soon, and we have not received verification that the problem is resolved in Maverick. Please test and post results to this bug or the fix will be reverted from the release.

Loïc Minier (lool) wrote :

I see:
dpkg-deb -c linux-image-2.6.38-8-virtual_2.6.38-8.42_amd64.deb | grep kernel/fs/nls
drwxr-xr-x root/root 0 2011-04-11 07:06 ./lib/modules/2.6.38-8-virtual/kernel/fs/nls/
-rw-r--r-- root/root 10144 2011-04-11 07:06 ./lib/modules/2.6.38-8-virtual/kernel/fs/nls/nls_cp437.ko

dpkg-deb -c linux-image-2.6.38-10-virtual_2.6.38-10.44_amd64.deb | grep kernel/fs/nls
drwxr-xr-x root/root 0 2011-06-03 01:05 ./lib/modules/2.6.38-10-virtualkernel/fs/nls/
-rw-r--r-- root/root 8288 2011-06-03 01:05 ./lib/modules/2.6.38-10-virtualkernel/fs/nls/nls_iso8859-1.ko
-rw-r--r-- root/root 10144 2011-06-03 01:05 ./lib/modules/2.6.38-10-virtualkernel/fs/nls/nls_cp437.ko

So looking good; thanks!

Loïc Minier (lool) wrote :

Also compared maverick's -updates and -proposed kernels
linux-image-2.6.35-30-virtual_2.6.35-30.54_amd64.deb has nls_cp437.ko and nls_iso8859-1.ko while linux-image-2.6.35-28-virtual_2.6.35-28.50_amd64.deb doesn't.

(All have the vfat module)

tags: added: verification-done-maverick
removed: verification-needed-maverick
Launchpad Janitor (janitor) wrote :
Download full text (30.0 KiB)

This bug was fixed in the package linux - 2.6.35-30.54

---------------
linux (2.6.35-30.54) maverick-proposed; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #794114

  [ Upstream Kernel Changes ]

  * Revert "xhci: Fix full speed bInterval encoding."
  * Revert "USB: xhci - also free streams when resetting devices"
  * Revert "USB: xhci - fix math in xhci_get_endpoint_interval()"
  * Revert "USB: xhci - fix unsafe macro definitions"

linux (2.6.35-30.53) maverick-proposed; urgency=low

  [ Upstream Kernel Changes ]

  * xhci: Fix full speed bInterval encoding.
    - LP: #792959

linux (2.6.35-30.52) maverick-proposed; urgency=low

  [ Herton R. Krzesinski ]

  * Release Tracking Bug
    - LP: #790653

  [ Stefan Bader ]

  * Include nls_iso8859-1 for virtual images
    - LP: #732046

  [ Thomas Schlichter ]

  * SAUCE: vesafb: mtrr module parameter is uint, not bool
    - LP: #778043

  [ Tim Gardner ]

  * [Config] Add cachefiles.ko to virtual flavour
    - LP: #770430

  [ Upstream Kernel Changes ]

  * Revert "intel_idle: PCI quirk to prevent Lenovo Ideapad s10-3 boot
    hang"
    - LP: #772560
  * Revert "TPM: Long default timeout fix"
    - LP: #772560
  * Revert "tpm_tis: Use timeouts returned from TPM"
    - LP: #772560
  * Revert "xen: set max_pfn_mapped to the last pfn mapped"
  * CAN: Use inode instead of kernel address for /proc file, CVE-2010-4565
    - LP: #765007
    - CVE-2010-4565
  * xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1,
    CVE-2011-0711
    - LP: #767740
    - CVE-2011-0711
  * Treat writes as new when holes span across page boundaries,
    CVE-2011-0463
    - LP: #770483
    - CVE-2011-0463
  * fs/partitions/ldm.c: fix oops caused by corrupted partition table,
    CVE-2011-1017
    - LP: #771382
    - CVE-2011-1017
  * qla2xxx: Make the FC port capability mutual exclusive.
    - LP: #772560
  * staging: usbip: bugfixes related to kthread conversion
    - LP: #772560
  * staging: usbip: bugfix add number of packets for isochronous frames
    - LP: #772560
  * staging: usbip: bugfix for isochronous packets and optimization
    - LP: #772560
  * staging: hv: Fix GARP not sent after Quick Migration
    - LP: #772560
  * staging: hv: use sync_bitops when interacting with the hypervisor
    - LP: #772560
  * irda: validate peer name and attribute lengths
    - LP: #772560
  * irda: prevent heap corruption on invalid nickname
    - LP: #772560
  * nilfs2: fix data loss in mmap page write for hole blocks
    - LP: #772560
  * ASoC: Explicitly say registerless widgets have no register
    - LP: #772560
  * ALSA: ens1371: fix Creative Ectiva support
    - LP: #772560
  * ROSE: prevent heap corruption with bad facilities
    - LP: #772560
  * Btrfs: Fix uninitialized root flags for subvolumes
    - LP: #772560
  * x86, mtrr, pat: Fix one cpu getting out of sync during resume
    - LP: #772560
  * UBIFS: do not read flash unnecessarily
    - LP: #772560
  * UBIFS: fix oops on error path in read_pnode
    - LP: #772560
  * UBIFS: fix debugging failure in dbg_check_space_info
    - LP: #772560
  * quota: Don't write quota info in dquot_commit()
    - LP: #772560
  * mm: avoid wrapping vm_...

Changed in linux (Ubuntu Maverick):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :
Download full text (26.1 KiB)

This bug was fixed in the package linux - 2.6.38-10.46

---------------
linux (2.6.38-10.46) natty-proposed; urgency=low

  [ Steve Conklin ]

  * Release Tracking Bug
    - LP: #802464

  [ Upstream Kernel Changes ]

  * Revert "put stricter guards on queue dead checks"
  * Revert "fix oops in scsi_run_queue()"

linux (2.6.38-10.45) natty-proposed; urgency=low

  [ Upstream Kernel Changes ]

  * Revert "af_unix: Only allow recv on connected seqpacket sockets."

linux (2.6.38-10.44) natty-proposed; urgency=low

  [ Steve Conklin ]

  * Release Tracking Bug
    - LP: #792013

  [ Robert Nelson ]

  * SAUCE: omap3: beagle: detect new xM revision B
    - LP: #770679
  * SAUCE: omap3: beagle: detect new xM revision C
    - LP: #770679
  * SAUCE: omap3: beagle: if rev unknown, assume xM revision C
    - LP: #770679

  [ Stefan Bader ]

  * Include nls_iso8859-1 for virtual images
    - LP: #732046

  [ Thomas Schlichter ]

  * SAUCE: vesafb: mtrr module parameter is uint, not bool
    - LP: #778043

  [ Tim Gardner ]

  * Revert "SAUCE: acpi battery -- move first lookup asynchronous"
    - LP: #775809
  * updateconfigs after update to v2.6.38.6

  [ Upstream Kernel Changes ]

  * Revert "ALSA: hda - Fix pin-config of Gigabyte mobo"
    - LP: #780546
  * Revert "[SCSI] Retrieve the Caching mode page"
    - LP: #788691
  * Revert "USB: xhci - fix unsafe macro definitions"
  * Revert "USB: xhci - fix math in xhci_get_endpoint_interval()"
  * Revert "USB: xhci - also free streams when resetting devices"
  * ath9k_hw: fix stopping rx DMA during resets
    - LP: #775809
  * netxen: limit skb frags for non tso packet
    - LP: #775809
  * ath: add missing regdomain pair 0x5c mapping
    - LP: #775809
  * block, blk-sysfs: Fix an err return path in blk_register_queue()
    - LP: #775809
  * p54: Initialize extra_len in p54_tx_80211
    - LP: #775809
  * qlcnic: limit skb frags for non tso packet
    - LP: #775809
  * nfsd4: fix struct file leak on delegation
    - LP: #775809
  * nfsd4: Fix filp leak
    - LP: #775809
  * virtio: Decrement avail idx on buffer detach
    - LP: #775809
  * x86, gart: Set DISTLBWALKPRB bit always
    - LP: #775809
  * x86, gart: Make sure GART does not map physmem above 1TB
    - LP: #775809
  * intel-iommu: Fix use after release during device attach
    - LP: #775809
  * intel-iommu: Unlink domain from iommu
    - LP: #775809
  * intel-iommu: Fix get_domain_for_dev() error path
    - LP: #775809
  * drm/radeon/kms: pll tweaks for r7xx
    - LP: #775809
  * drm/nouveau: fix notifier memory corruption bug
    - LP: #775809
  * drm/radeon/kms: fix bad shift in atom iio table parser
    - LP: #775809
  * drm/i915/tv: Remember the detected TV type
    - LP: #775809
  * tty/n_gsm: fix bug in CRC calculation for gsm1 mode
    - LP: #775809
  * serial/imx: read cts state only after acking cts change irq
    - LP: #775809
  * ASoC: Fix output PGA enabling in wm_hubs CODECs
    - LP: #775809
  * ASoC: codecs: JZ4740: Fix OOPS
    - LP: #775809
  * ALSA: hda - Add a fix-up for Acer dmic with ALC271x codec
    - LP: #775809
  * ahci: don't enable port irq before handler is registered
    - LP: #775809
  * libata: Implement ATA_FLAG_NO_...

Changed in linux (Ubuntu Natty):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers