Tagged: Linux
Further reflections on the Raspberry Pi
I don’t want to be like a wet blanket – I really love the Raspberry Pi and the idea you can get a bare bones but entirely functional computer for less than thirty quid and hook it up to your HD TV with a £1.50 HDMI cable.
But, having spent the day trying to get it to do some pretty basic things – like play some video or audio – I have to say that a lot of educationalists seem to be vesting far too much hope in what is, after all, a testing board.
It’s true that you can boot the thing up quickly and easily and that it comes with Scratch (though I haven’t tested that, yet). But I suspect most kids will get frustrated very quickly with it when they find it cannot do lots of things on the internet that they take for granted.
Using it is like regressing a decade or so in the Linux experience – lots of things don’t work (I still have not got mine to play any sound via the HDMI cable) or the software is not (yet) available.
I could see how it could be a low spec web server (after all I got a Dreamcast to be one of those) or a management board for NAS, and I’d love to play around with the GPIO stuff, but I would worry that many children would be put off if things that they expect their programs to do just do not happen because of some problems with the drivers.
The idea is a very sound one, though, and I am sure that in six months time it will be worth considering, but I wouldn’t bet my ICT budget on a fleet of these things yet.
(In my own case my idea, that I could use the board as a micro alternative to a projector by having it display presentations and video on our office HD TVs is on hold for now, as the software is just not available as far as I can see.)
Related articles
- Running BASIC on the Raspberry Pi (cartesianproduct.wordpress.com)
- Want to buy more than one Raspberry Pi? Now you can! (raspberrypi.org)
- Open source graphics drivers for the Raspberry Pi on the way (liliputing.com)
- The MagPi, a magazine for Raspberry Pi users – #piday #raspberrypi @Raspberry_Pi (adafruit.com)
Thrash reduction no longer a priority for Linux kernel devs?
Version 3.5 of the Linux kernel has been released.
One of the changes it includes is the removal of the “swap token” code – one of the very few ‘local’ memory management policies grafted on to the ‘global’ page replacement mechanisms in the kernel.
There are various technical reasons offered for the removal of the code – on which I am not qualified to comment – but the borrow line is that it was broken in any case, so the removal seems to make sense.
What does slightly disturb me, though, is the comment that Rik Van Riel, the key figure in kernel memory management code, makes:
The days of sub-1G memory systems with heavy use of swap are over.
If we ever need thrashing reducing code in the future, we will have to
implement something that does scale.
I think the days of sub-1G systems are far from over. In fact I suspect there are more of them, and more of them running Linux, than ever before and that trend is not going to stop.
He’s right of course about the need to find that code that works – my own efforts (in my MSc report) didn’t crack this problem, but I do think there is more that can be done.
Related articles
- Linux Kernel 3.4.6 Is Available for Download (news.softpedia.com)
- Microsoft Apologizes For Inserting Naughty Phrase Into Linux Kernel (linux.slashdot.org)
- Download Linux Kernel 3.5 Release Candidate 7 (news.softpedia.com)
- Vincent Sanders: Linux kernel presentation (vincentsanders.blogspot.com)
Running BASIC on the Raspberry Pi
Actually, I ran BINSIC, my very own dialect of BASIC on the Raspberry Pi – it is very slow (a bit slower even than a ZX81 back in the day) but it does work.
Haven’t had a chance to investigate what happens if I tweak the settings on the thing – possibly I might be able to speed execution up. Could be that Java and Groovy is just too much bloat, could be that BINSIC just demands a lot of computation (I refuse to consider that it might be poorly designed and executed).
Related articles
- Raspbian Linux now available for Raspberry Pi: Up to 40 percent faster than Debian (liliputing.com)
- Raspberry Pi now available for general order (slashgear.com)
- Raspbian: The fastest operating system for the Raspberry Pi (liliputing.com)
- Want to buy more than one Raspberry Pi? Now you can! (raspberrypi.org)
- ODROID-X: The $129 Quad-core Alternative to Raspberry Pi (tomshardware.com)
- Raspberry Pi launched by balloon broadcast images from 40km high (raspberrypi.org)
Dmesg from Raspberry Pi
Sadly could not get it to work with the video cable I had, so work colleagues will have to wait to see this thing put through its paces, but it boots headless.
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.1.9+ (dc4@dc4-arm-01) (gcc version 4.5.1 (Broadcom-2708) ) #168 PREEMPT Sat Jul 14 18:56:31 BST 2012
[ 0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[ 0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[ 0.000000] Machine: BCM2708
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] On node 0 totalpages: 49152
[ 0.000000] free_area_init_node: node 0, pgdat c05f7c4c, node_mem_map c06c8000
[ 0.000000] Normal zone: 384 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 48768 pages, LIFO batch:15
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 48768
[ 0.000000] Kernel command line: dma.dmachans=0x3c bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708.boardrev=0×2 bcm2708.serial=0x5321aa64 smsc95xx.macaddr=B8:27:EB:21:AA:64 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Memory: 192MB = 192MB total
[ 0.000000] Memory: 187880k/187880k available, 8728k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 – 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 – 0xfffe0000 ( 896 kB)
[ 0.000000] DMA : 0xffc00000 – 0xffe00000 ( 2 MB)
[ 0.000000] vmalloc : 0xcc800000 – 0xd8000000 ( 184 MB)
[ 0.000000] lowmem : 0xc0000000 – 0xcc000000 ( 192 MB)
[ 0.000000] modules : 0xbf000000 – 0xc0000000 ( 16 MB)
[ 0.000000] .text : 0xc0008000 – 0xc05943d0 (5681 kB)
[ 0.000000] .init : 0xc0595000 – 0xc05c7000 ( 200 kB)
[ 0.000000] .data : 0xc05c8000 – 0xc05f93b8 ( 197 kB)
[ 0.000000] .bss : 0xc05f93dc – 0xc06c7504 ( 825 kB)
[ 0.000000] NR_IRQS:245
[ 0.000000] timer_set_mode: unhandled mode:1
[ 0.000000] timer_set_mode: unhandled mode:3
[ 0.000000] Console: colour dummy device 80×30
[ 0.000000] console [tty1] enabled
[ 3.008944] Calibrating delay loop… 697.95 BogoMIPS (lpj=3489792)
[ 3.067898] pid_max: default: 32768 minimum: 301
[ 3.068528] Mount-cache hash table entries: 512
[ 3.069184] Initializing cgroup subsys cpuacct
[ 3.069298] Initializing cgroup subsys devices
[ 3.069349] Initializing cgroup subsys freezer
[ 3.069394] Initializing cgroup subsys blkio
[ 3.069512] CPU: Testing write buffer coherency: ok
[ 3.069646] ftrace: allocating 14801 entries in 44 pages
[ 3.142643] hw perfevents: enabled with v6 PMU driver, 3 counters available
[ 3.144629] devtmpfs: initialized
[ 3.152379] NET: Registered protocol family 16
[ 3.154308] vc-mem: mm_vc_mem_phys_addr = 0×00000000
[ 3.154373] vc-mem: mm_vc_mem_size = 0×10000000 (256 MiB)
[ 3.154891] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
[ 3.154964] hw-breakpoint: maximum watchpoint size is 4 bytes.
[ 3.155013] mailbox: Broadcom VideoCore Mailbox driver
[ 3.155125] bcm2708_vcio: mailbox at f200b880
[ 3.155233] bcm_power: Broadcom power driver
[ 3.155281] bcm_power_open() -> 0
[ 3.155314] bcm_power_request(0, 8)
[ 3.656009] bcm_mailbox_read -> 00000080, 0
[ 3.656055] bcm_power_request -> 0
[ 3.656088] Serial: AMBA PL011 UART driver
[ 3.656281] dev:f1: ttyAMA0 at MMIO 0×20201000 (irq = 83) is a PL011 rev3
[ 3.961991] console [ttyAMA0] enabled
[ 3.987793] bio: create slab at 0
[ 3.993362] SCSI subsystem initialized
[ 3.997412] usbcore: registered new interface driver usbfs
[ 4.003206] usbcore: registered new interface driver hub
[ 4.008839] usbcore: registered new device driver usb
[ 4.014995] Switching to clocksource stc
[ 4.024054] Switched to NOHz mode on CPU #0
[ 4.037751] FS-Cache: Loaded
[ 4.041143] CacheFiles: Loaded
[ 4.062678] NET: Registered protocol family 2
[ 4.067628] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 4.076225] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[ 4.083753] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[ 4.090454] TCP: Hash tables configured (established 8192 bind 8192)
[ 4.096838] TCP reno registered
[ 4.100049] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 4.105942] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 4.112808] NET: Registered protocol family 1
[ 4.118168] RPC: Registered named UNIX socket transport module.
[ 4.124352] RPC: Registered udp transport module.
[ 4.129129] RPC: Registered tcp transport module.
[ 4.133858] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 4.140699] bcm2708_dma: DMA manager at cc808000
[ 4.145463] bcm2708_gpio: bcm2708_gpio_probe c05d00e0
[ 4.151132] vc-mem: Videocore memory driver
[ 4.156232] audit: initializing netlink socket (disabled)
[ 4.161794] type=2000 audit(0.780:1): initialized
[ 4.273943] VFS: Disk quotas dquot_6.5.2
[ 4.278154] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 4.286181] FS-Cache: Netfs ‘nfs’ registered for caching
[ 4.292889] msgmni has been set to 366
[ 4.299441] io scheduler noop registered
[ 4.303417] io scheduler deadline registered (default)
[ 4.308775] io scheduler cfq registered
[ 4.313091] BCM2708FB: registering framebuffer (656×416@16)
[ 4.319455] bcm2708_fb_set_par info(cb8ec400) 656×416 (656×416), 0, 16
[ 4.324300] BCM2708FB: start = cc900000,4d385000 width=656, height=416, bpp=16, pitch=1312 size=545792 success=0
[ 4.328226] Console: switching to colour frame buffer device 82×26
[ 4.363081] BCM2708FB: register framebuffer (0)
[ 4.370756] kgdb: Registered I/O driver kgdboc.
[ 4.389840] brd: module loaded
[ 4.401655] loop: module loaded
[ 4.408070] vcos: [1]: vchiq_init_state: slot_zero = 0xffd80000, is_master = 0
[ 4.417984] vcos: [1]: vchiq_init_state: called
[ 4.425920] vcos: [1]: vchiq: initialised – version 2 (min 2), device 253.0
[ 4.436157] usbcore: registered new interface driver smsc95xx
[ 4.444401] cdc_ncm: 04-Aug-2011
[ 4.450190] usbcore: registered new interface driver cdc_ncm
[ 4.458183] dwc_otg: version 2.90b 6-MAY-2010 (platform bus)
[ 4.466607] Core Release: 2.80a
[ 4.472190] Setting default values for core params
[ 4.479410] Finished setting default values for core params
[ 4.487660] cc840008 -> 1
[ 4.692730] Using Buffer DMA mode
[ 4.698348] Periodic Transfer Interrupt Enhancement – disabled
[ 4.706568] Multiprocessor Interrupt Enhancement – disabled
[ 4.714606] dwc_otg bcm2708_usb: DWC OTG Controller
[ 4.722035] dwc_otg bcm2708_usb: new USB bus registered, assigned bus number 1
[ 4.731718] dwc_otg bcm2708_usb: irq 75, io mem 0×00000000
[ 4.739565] Init: Port Power? op_state=1
[ 4.745661] Init: Power Port (0)
[ 4.751275] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 4.760478] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 4.770048] usb usb1: Product: DWC OTG Controller
[ 4.776999] usb usb1: Manufacturer: Linux 3.1.9+ dwc_otg_hcd
[ 4.784974] usb usb1: SerialNumber: bcm2708_usb
[ 4.792912] hub 1-0:1.0: USB hub found
[ 4.798875] hub 1-0:1.0: 1 port detected
[ 4.805829] Module dwc_common_port init
[ 4.806233] usbcore: registered new interface driver uas
[ 4.813839] Initializing USB Mass Storage driver…
[ 4.821204] usbcore: registered new interface driver usb-storage
[ 4.829462] USB Mass Storage support registered.
[ 4.836535] usbcore: registered new interface driver libusual
[ 4.845075] mousedev: PS/2 mouse device common for all mice
[ 4.853041] cpuidle: using governor ladder
[ 4.859428] cpuidle: using governor menu
[ 4.865595] sdhci: Secure Digital Host Controller Interface driver
[ 4.874016] sdhci: Copyright(c) Pierre Ossman
[ 4.880758] bcm_power_open() -> 1
[ 4.886491] Registered led device: mmc0::
[ 4.887001] mmc0: SDHCI controller on BCM2708_Arasan [platform] using platform’s DMA
[ 4.899412] mmc0: BCM2708 SDHC host at 0×20300000 DMA 2 IRQ 77
[ 4.907624] sdhci-pltfm: SDHCI platform and OF driver helper
[ 4.915932] Registered led device: led0
[ 4.916420] usbcore: registered new interface driver usbhid
[ 4.925516] usbhid: USB HID core driver
[ 4.933397] TCP cubic registered
[ 4.938859] Initializing XFRM netlink socket
[ 4.945587] NET: Registered protocol family 17
[ 4.954648] Registering the dns_resolver key type
[ 4.967050] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
[ 4.989569] Waiting for root device /dev/mmcblk0p2…
[ 5.022690] mmc0: problem reading SD Status register.
[ 5.047824] mmc0: new high speed SDHC card at address 0215
[ 5.069785] mmcblk0: mmc0:0215 APPSD 30.6 GiB
[ 5.078236] mmcblk0: p1 p2
[ 5.209561] usb 1-1: new high speed USB device number 2 using dwc_otg
[ 5.439438] usb 1-1: New USB device found, idVendor=0424, idProduct=9512
[ 5.448581] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5.459482] hub 1-1:1.0: USB hub found
[ 5.465852] hub 1-1:1.0: 3 ports detected
[ 5.749161] usb 1-1.1: new high speed USB device number 3 using dwc_otg
[ 5.869564] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[ 5.879263] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5.892256] smsc95xx v1.0.4
[ 5.954590] smsc95xx 1-1.1:1.0: eth0: register ‘smsc95xx’ at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:21:aa:64
[ 10.705547] EXT4-fs (mmcblk0p2): recovery complete
[ 10.715781] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 10.729063] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 10.738931] Freeing init memory: 200K
[ 24.983111] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[ 25.326722] ### snd_bcm2835_alsa_probe c05d07a0 ############### PROBING FOR bcm2835 ALSA device (0):(1) ###############
[ 25.349304] Creating card…
[ 25.354678] Creating device/chip ..
[ 25.369822] Adding controls ..
[ 25.375202] Registering card ….
[ 25.396456] bcm2835 ALSA CARD CREATED!
[ 25.408425] ### BCM2835 ALSA driver init OK ###
[ 32.799926] smsc95xx 1-1.1:1.0: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
[ 38.998740] Adding 102396k swap on /var/swap. Priority:-1 extents:1 across:102396k SS
A pleasingly retro look and feel
I have done almost all my development of Hexxed on a Macbook, but have now updated the git repo on my Linux laptop and run it
there – some interesting differences:
- the Linux app has a pleasingly retro look and feel to it – no anti-aliased fonts here
- on Linux key reptitition works as expected – ie if one holds down a key the application is sent multiple key events, which is what one expects and which works well with the vi-like interface I am building
- On Linux the first file open dialog is a really crude/retro looking box (think Windows 3.0), while subsequent file open dialogs reflect the system windows toolkit.
The screenshot is of a VMUFAT volume, it was my experience of writing that driver that gave me the itch that Hexxed is meant to scrtach – in particular I wanted a hex editor that would allow me to display 16 bit numbers in a given endian form and partition the memory space by arbitary block size (VMUs use a lot of 16 bit little endian numbers and a 512 byte block size). Hexxed does both of these things now, though it still has no editing facilities – just viewing.
As for VMUFAT itself: Sadly no one on LKML seems much interested in that – the first posting got some helpful comments, but since I posted the corrected code six or so weeks ago, nothing. Suppose I will have to start poking people with an electronic stick.
Related articles
- VMUFAT: almost done (I hope) (cartesianproduct.wordpress.com)
- Edit binary files and raw disk sectors with HXD Hex Editor (soft32.com)
- BCache For The Linux Kernel Still Being Tackled (phoronix.com)
- My experience switching to Linux: Intro (readmystuff.wordpress.com)
- “Why Linux Sucks” and “Why Linux Does Not Suck” videos from Linux Fest (lunduke.com)
- Skype for Linux ‘Not Dead’ (omgubuntu.co.uk)
- Linux User & Developer now available on Zinio (linuxuser.co.uk)
- How to install Lex & Yacc in Linux Mint (amitcs.wordpress.com)
How much control can Microsoft exert in the development ecosystem?
It’s a long time – over a decade – since I last used a Microsoft development tool. For what it’s worth, I quite liked Visual C++ back then, but in the middle of my subscription (in 1998 if I remember correctly) Microsoft just tore up the contract and offered me something of less use. The details escape me now but it was a formative moment – I was not willing to trust them any more and suddenly the idea of using Linux had new appeal.
(At the same time I was teaching myself how to use Unix on the Sun OS system that hosted the Labour Party’s Excalibur EFS document system: after the 1997 general election there was nobody left in the team but me and so I went out and bought the venerable Essential System Administration: Tools and Techniques for Linux and Unix Administration: Help for UNIX System Administrators – which helped but it was still hard going to escape from the Windows monoculture. The Party’s IT staff essentially said “Unix? Does anyone still use that?” – this was truly the apogee of Microsoft’s monopolistic drive.)
Today the world seems very different. But if Microsoft have taken a few knocks and people are almost as likely to think of Apple and even Google as the enemies of software diversity and freedom, we should not underestimate its raw power in the market. Most desktops in most workplaces are still Windows boxes and writing for the mass market means targeting Microsoft’s operating system.
Not surprisingly many, probably most, of the people who are doing that are using Microsoft’s tools and compilers. That gives the boys and girls in Redmond a lot of power and they don’t have to be acting in a malicious way to have an detrimental impact – as in their refusal to support the C99 language standard. The only mantra that C is a proper subset of C++ (which Microsoft fully support) has been dead for a few years now and there are features in C99, which is the standard in general use in the Unix/Linux development world not supported in C++11 (the current standard there which Microsoft are working to support). Microsoft do support the twenty year old C90 standard but have essentially said that they are not going to develop that any further – you can read more about this here.
In response to this some C++ developers have done so far as to say “C is obsolete” – perhaps reflecting a new confidence in the C++ development world, as that language has been making something of a comeback in the last couple of years (not least because Microsoft have promoted it so heavily).
That may or may not be the case – personally I doubt it very much. But since when did we allow tool manufacturers to make that decision for us?
As I did in 1998 maybe it is time for the developers to look at the alternatives. There are plenty of industrial strength compilers and editors out there that will free them from the caprice of a company which is once more demonstrating it just doesn’t get it.
Related articles
- The return of the Unix wars? (lwn.net)
- Best UNIX/LINUX Tutorial for All Beginners (pathanruet.wordpress.com)
- Windows Port of Redis Updated by Microsoft Subsidiary (devopsangle.com)
- UNIX Introduction (pathanruet.wordpress.com)
- Technology › Microsoft offers $99 Xbox consoles with a catch (japantoday.com)
OS/2: killed by Bill?
Here is a fascinating account of the rise and fall of OS/2, the operating system that was supposed to seal IBM’s (and Microsoft’s) global domination. Instead it flopped, being beaten by a poorer quality alternative in the form of Windows 3.0/3.1 after Microsoft pulled out.
I remember when Windows NT was launched in 1993 – one of its selling points was its ability to run OS/2 1.0 software natively via a dedicated subsystem (strange to remember, but then Microsoft went heavy on the modular nature of NT and its ability to run on non-Intel hardware and to support different software on top of the microkernel).
I could only ever find one free piece of native OS/2 software to run – a hex editor. A fundamentally vital workhorse for any programmer yet good implementations always seem to be in short supply (even now – last month I seriously considered writing my own so fed up was I with the basic offerings that come with Linux flavours). This one – its name escapes me – was a goodie though and I was a bit cheesed off when an NT upgrade (to 3.5) broke it. By then Microsoft plainly did not care much for software compatibility (or for NT’s ability to run on different platforms – that was scrapped too).
Still, OS/2 had its fans. As a journalist reporting on housing I went to see a public sector housing manager in rural Somerset at about this time: he was pioneering a new software system for his district housing offices and OS/2, with its revolutionary object-orientated desktop (which is what right clicking is all about) was to be at the core of that – with housing officers treating the desktop like various forms on which they could order repairs and so on. It was difficult not to share his enthusiasm because the idea, now a commonplace, that objects on the desktop could be more than just program icons was so new and exciting.
The article lists the ways in which Microsoft went all out to kill OS/2 and, in every practical sense, they succeeded. Those who doubt the need for free-as-in-freedom software should consider that. But it also lists various places where OS/2 is still in use (in the US). Anyone know of similar examples in the UK?
Related articles
- OS/2 turns 25 (zdnet.com)
- OS/2 wasn’t all that good (erratasec.blogspot.com)
- If The Best Technology Won We Would All Be Using OS/2 (theneteconomy.wordpress.com)
- IBM’s Failed Operating System OS/2 Is 25 Years Old – But It Still Powers ATMs and Checkouts [Ibm] (gizmodo.com)
- IBM’s OS/2 celebrates 25 year anniversary, still alive if you know where to look (theverge.com)
- OS/2: IBM’s attempt at building an operating system turns… (shortformblog.com)
Touch paper lit…
Have posted the VMUFAT code to LKML – see here and similar.
More delays for VMUFAT
Obviously the whole world is waiting for VMUFAT to hit the streets, but it looks as though it will have to hold its collective breath a little longer, as I have hit more delays.
Working with big volumes (several megabytes) reveals the code eats a lot of memory in ways I don’t yet fully understand. But that will need to be fixed, even if no one is ever really likely to want a 32MB VMUFAT volume.
Related articles
- Spoke too soon (of course) (cartesianproduct.wordpress.com)
VMUFAT: almost done (I hope)
About a decade ago I first wrote some Linux kernel code that would handle the filesystem on the little slab of flash storage that came with a SEGA Dreamcast Visual Memory Unit (VMU).
A few attempts to get this in the kernel mainline then followed. It was a bruising experience and unsuccessful. But I am about to try again.
I am a bit more confident this time – not least because I have written some userland code which will allow anyone to test the filesystem out, whether they have a VMU or not: mkfs.vmufat is now available at GitHub – https://github.com/mcmenaminadrian/mkfs.vmufat/blob/master/mkfs.vmufat.c
Secondly I do think I am a better coder thanks to the MSc and have put some effort into fixing the filesystem code itself.
But we’ll see, hopefully tomorrow, how it goes down.
Related articles
- One of those debugging nights (cartesianproduct.wordpress.com)
- Filesystem works (cartesianproduct.wordpress.com)
- Fan Made Sega Dreamcast Revival Has Me Wishing Sega Still Made Consoles (devicemag.com)
- Fedora puts back Btrfs deployment yet again (h-online.com)
- Maintenance of Linux kernel 2.6.32 is slowing down (h-online.com)
