Old Computers, -Os, Stripping, and 4-STABLE
Eric Kjeldergaard
kjelderg at gmail.com
Wed Dec 15 10:07:38 PST 2004
> 1. I'd like to know if it's (relatively) safe to use -Os for CFLAGS and
> COPTFLAGS?
Probably not, although it never hurts to experiment :)
> 2. I'd like to know what background stuff/daemons/etc that can be safely
> striped out, sendmail?, etc?
Well, I don't have your list of current processes, but if all you want
it for is a workstation and mp3 player, things like sshd and sendmail
can certainly be disabled.
> 3. Is there anyway to optimize the system for decoding / playing mp3s?
The mp3 player is a start. I've had good luck on minimal systems with mpg123
> 4. Give mp3 playback a high priority and more cpu time in the system so
> it doesn't skip as much, auto reniceing?
Certainly nicing would give you more priority. You may want to do that.
> 5. Optimize sound device resources, buffersize, dma, targetirqrate, etc
> for mp3 playback?
>
> 6. Any other tips to improve performance?
mount / with -o noatime
> 7. Is there anything else I can safely strip out of my kernel (or add)
> that will improve performance?
>
> here is a copy of my kernel config file:
>
> machine i386
> cpu I586_CPU
> ident STUMBLEINE_01
> maxusers 0
>
> options PNPBIOS
> options INET #InterNETworking
> options FFS #Berkeley Fast Filesystem
> options FFS_ROOT #FFS usable as root device [keep this!]
> options SOFTUPDATES #Enable FFS soft updates support
> options UFS_DIRHASH #Improve performance on big directories
> options MFS #Memory Filesystem
> #options MD_ROOT #MD is a potential root device
> #options NFS #Network Filesystem
> #options NFS_ROOT #NFS usable as root device, NFS required
> #options MSDOSFS #MSDOS Filesystem
> #options CD9660 #ISO 9660 Filesystem
> #options CD9660_ROOT #CD-ROM usable as root, CD9660 required
> options PROCFS #Process filesystem
probably unnecessary
> options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
> options UCONSOLE #Allow users to grab the console
> options USERCONFIG #boot -c editor
> options VISUAL_USERCONFIG #visual boot -c editor
> options KTRACE #ktrace(1) support
> options SYSVSHM #SYSV-style shared memory
> options SYSVMSG #SYSV-style message queues
> options SYSVSEM #SYSV-style semaphores
also may be unnecessary
> options P1003_1B #Posix P1003_1B real-time extensions
> options _KPOSIX_PRIORITY_SCHEDULING
> options ICMP_BANDLIM #Rate limit bad replies
> options KBD_INSTALL_CDEV # install a CDEV entry in /dev
> # output. Adds ~215k to driver.
> device isa
> device pci
>
> # Floppy drives
> device fdc0 at isa? port IO_FD1 irq 6 drq 2
> device fd0 at fdc0 drive 0
> device fd1 at fdc0 drive 1
These can be eliminated if you don't use them
> # ATA and ATAPI devices
> device ata0 at isa? port IO_WD1 irq 14
> device ata1 at isa? port IO_WD2 irq 15
> device ata
> device atadisk # ATA disk drives
> device atapicd # ATAPI CDROM drives
> options ATA_STATIC_ID #Static device numbering
>
> # SCSI peripherals
> device scbus # SCSI bus (required)
> device da # Direct Access (disks)
You only need these if you use scsi on your system in some way (usb
mass is what I keep them in for, but I didn't notice usb in your
config)
>
> # atkbdc0 controls both the keyboard and the PS/2 mouse
> device atkbdc0 at isa? port IO_KBD
> device atkbd0 at atkbdc? irq 1 flags 0x1
> device psm0 at atkbdc? irq 12
>
> # Video options
> device vga0 at isa?
> options VESA
> options SC_PIXEL_MODE
>
> # splash screen/screen saver
> pseudo-device splash
This is generally unnecesary, it's only used (as it says) for boot
splashes and screensavers. There have been some who thought the
screensavers were a lot of overhead.
>
> # syscons is the default console driver, resembling an SCO console
> device sc0 at isa? flags 0x100
>
> # Floating point support - do not disable.
> device npx0 at nexus? port IO_NPX irq 13
>
> # Power management support (see LINT for more options)
> device apm0 at nexus? disable flags 0x20 # Advanced Power
> Management
>
> # PCCARD (PCMCIA) support
> device card
> device pcic0 at isa? irq 0 port 0x3e0 iomem 0xd0000
> device pcic1 at isa? irq 0 port 0x3e2 iomem 0xd4000 disable
>
> # Serial (COM) ports
> device sio0 at isa? port IO_COM1 flags 0x10 irq 4
> device sio1 at isa? port IO_COM2 irq 3
> device sio2 at isa? disable port IO_COM3 irq 5
> device sio3 at isa? disable port IO_COM4 irq 9
Keep these only if you use your serial ports.
> # Parallel port
> device ppc0 at isa? irq 7
> device ppbus # Parallel port bus (required)
> device lpt # Printer
> device plip # TCP/IP over parallel
> device ppi # Parallel port interface device
if you don't use the parallel port, these can go.
>
> # ISA/PCMCIA Ethernet NICs.
> device miibus # MII bus support
> device ed0 at isa? disable port 0x280 irq 10 iomem 0xd8000
> device ep
> device fe0 at isa? disable port 0x300
> device xe
This many nics? You could load these as modules when they are in, and
keep them unloaded when they aren't.
>
> # PRISM I IEEE 802.11b wireless NIC.
> device awi
> # WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
> # exists only as a PCMCIA device, so there is no ISA attachment needed
> # and resources will always be dynamically assigned by the pccard code.
> device wi
> # Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
> # work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
> # mode (the factory default). If you set the switches on your ISA
> # card for a manually chosen I/O address and IRQ, you must specify
> # those parameters here.
> device an
>
> # The probe order of these is presently determined by i386/isa/isa_compat.c.
> #device ie0 at isa? disable port 0x300 irq 10 iomem 0xd0000
> #device le0 at isa? disable port 0x300 irq 5 iomem 0xd0000
> #device lnc0 at isa? disable port 0x280 irq 10 drq 0
> #device cs0 at isa? disable port 0x300
> device sn0 at isa? disable port 0x300 irq 10
>
> # Pseudo devices - the number indicates how many units to allocate.
> pseudo-device loop # Network loopback
> pseudo-device ether # Ethernet support
> #pseudo-device sl 1 # Kernel SLIP
> pseudo-device ppp 1 # Kernel PPP
this can go if you don't use ppp
> pseudo-device tun # Packet tunnel.
this can go if you don't tunnel via this machine.
> pseudo-device pty # Pseudo-ttys (telnet etc)
This can be removed if you don't log in to it remotely.
> pseudo-device md # Memory "disks"
>
> # The `bpf' pseudo-device enables the Berkeley Packet Filter.
> # Be aware of the administrative consequences of enabling this!
> pseudo-device bpf #Berkeley packet filter
>
> device pcm # Generic Sound Support
> device sbc0 at isa? port 0x220 irq 10 drq 1
>
Those are the ones that I see at first. A close examination of your
own ps fauxw output would tell you what's running and you could try
killing the ones that seem unnecessary. Good luck.
--
If I write a signature, my emails will appear more personalised.
More information about the freebsd-questions
mailing list