Archive for the 'Hardware' Category

Resist NVidia, especially for Linux

Friday, September 7th, 2018

So I do Linux kernel, driver, libraries, gcc, development since 1998. A little bit everywhere, all over the place. X86, ARM, PowerPC, SPARC you name it. I contributed to the Linux distribution ROCK Linux, later became stable release maintainer, and still run the fork #t2sde for embedded and special custom Linux distributions. My company ExactCODE was involved in many embedded projects and development like that, and in 2008 a customer wanted to base a product on the Nvidia Tega SoC, so I wrote Nvidia if they could release us any register level spec, even under NDA, to work on such a project. To my surprise I got an answer, but it was a simple one-liner, and not really what we needed to hear:

How is your Windows CE experience? We are not supporting Linux on Tegra.

Received: from hqnvupgp03.nvidia.com (Not Verified[172.17.102.18]) by hqemgate03.nvidia.com
id ; Tue, 22 Jul 2008 12:56:40 -0700
Subject: RE: NVidia SoC SPECs for Embedded Linux systems
Date: Tue, 22 Jul 2008 12:57:03 -0700

How is your Windows CE experience? We are not supporting Linux on Tegra.

—–Original Message—–

For the currently engaging projects we need solid 3D support in
our portfolio we would kindly ask for the possibility to sign an NDA
to receive register level specs support NVidia’s latest integrated
embedded SoC’s in our boards support offerings.

Just for those why I can not, and will never recommend chips without register level data sheets available to developer, ..!

20 years, and over 400 scanner drivers

Friday, August 24th, 2018

Quite exactly 20 years ago I purchased my first scanner, after saving for years for my first computer: A Pentium 120, at first even running with our old ISA VGA card from my farther’s ageing 386sx25. Lafter, after saving more for my first VGA card, an ELSA Victory 3D w/ S3/Virge3D, it was also time for the first peripherals and of course to get analog material into the digital world I needed a scanner: a c’t mgazine well rated AVision AV630CS. But as Windows crashed too often than not on me, it was also time to migrate to Linux. Remember that was 1998 when few actually heard about it. And of course I had to write my own SANE scanner driver - and the rest is history:

ExactScan.com.

Bluetooth apt-X finally works w/ OpenSource!

Wednesday, June 6th, 2018

I also finally hcidump’ed which codecs my Sennheiser Momentum 2.0 supports, as the marketing material is often not that detailed and trustworthy. So besides the standard SBC; only apt-X:

# hcidump | grep -i codec
Media Codec - non-A2DP (aptX)
Media Codec - SBC
Media Codec - non-A2DP (aptX)

CLI, manual Bluez connection

Monday, June 4th, 2018

# bluetoothctl

power on
agent on
default-agent
scan on
pair xx:…
connect xx:…

Notes. installing Irix, Octane, O2

Saturday, April 21st, 2018

Empty HD:

boot -f dksc(1,3,8)sash64
# boot -f dksc(1,3,8)sashARCS

partition:
boot -f dksc(1,3,7)stand/fx.64 –x
# boot -f dksc(1,3,7)stand/fx.ARCS –x

Install System Software

2 to open media
# insert all CDs

then to install:

keep *
install standard
go

in case of conflicts:

conflict 1a 2a .. .. ..

Obviously, more detailed tips at the usual: nekochan.net, …

AT command notes

Thursday, March 15th, 2018

so it is that time of the decade again, that you need to poke with some AT modem commands, e.g. for 3G / LTE networks, …

Does the SIM card need a PIN?
at+cpin?

Enter the PIN if required:
AT+CPIN=1234

Current network:
AT+COPS?

Update: special service numbers, e.g. balance:
AT+CUSD=1,”*100#”

List of early computing systems [WIP]

Monday, March 12th, 2018

I think we initially had a 286 without HD, nor color graphics
my father’s 386sx25 w/ 2MB RAM for what feels forever
gifted free NEC V20 XT clone thing
Pentium 120
IDT WinChip2 240
AMD K7 Athlon 600
AMD K7 Athlon 1GHz?
Sun Ultra 5 4/2002
Sgi Octane 11/2005
iBook G3 750?

GCC becomes slower and slower

Thursday, January 18th, 2018

As visible on my other posts, also on twitter and instagram I’m working on some vintage machines with our #t2sde the other weeks. Now only did the new GCC versions feel slower and slower, where even EPYC datacenter servers took like twice as long to bootstrap some $sysroot, … I did a quick mips64 build and install to the R10000 mips64 Sgi Octane. A hello-world.c compile is like 20% slower from 4.9.4 to 7.2.0 (N32 user-land):

# gcc –version
gcc (GCC) 4.9.4
# time gcc hello.c
user 0m1.080s

vs.

# gcc –version
gcc (GCC) 7.2.0
# gcc hello.c
user 0m1.290s

low-level format a spinning hard drive

Wednesday, December 27th, 2017

On this vintage Unix workstation machine I still got one of those spinning SCSI drives. The one in the SPARCstation 2 –spinning with 7200rpm, from 1999!– had some bad blocks at the end. First I partitioned it so that the OS would not touch them, but as I wanted to re-install a new, slightly different T2 build I wanted to try to get rid of this bad blocks. From the spec it sounds like those old drives may only re-map reserve spare blocks on low-level format, as opposed to any write like modern disk drives do. “Flawed sector reallocation at format time”, however, the document also mention “Programmable auto write and read reallocation”, “Reallocation of defects on command (Post format)” and even “Full automatic read and write reallocation” hm, … confusing.

Anyways, I did not really wanted to do a longer term install with this bad blocks so I tried the sgutils’s sg_format for the first time ever. Little bit of a scary thing, and you should certainly not do this light hearted. After issues the SCSI FORMAT command, the drive is busy and won’t respond to regular SCSI commands. I run for an hour, so I guess it was stuck ad some bad area. I turned if off, guessing this may render it bricked, and it came back online without responding to SCSI READ and WRITES, … I issues another FORMAT; in the hope it may complete, and after only some minutes it did, ..! Yay, good luck.

So do not try this too easy and too often. I still have to re-read the drive to see if it still gives read errors, or if the reallocation re-mapping of reserve sectors was successful.

CPU support lost in the Linux kernel

Saturday, December 23rd, 2017

For those enjoying tinkering with vintage, retro computer gear: Linux was the kernel and OS supposedly supporting every CPU, smart toaster and coffee machine under the sky.
Unfortunately with all the high massive parallel, performance state of the art tinkering some vintage maintenance burden was recently dropped over the years. Case in point: the original Intel 80386 which lacks the CMPXCHG instruction introduced with the i486, in the Linux kernel 3.8. And also the early Sun SPARC v7, Cypress, which even lacked hardware multiply and divide, somewhere around the kernel release 3.4, … :-/

Update: It also becomes increasingly difficult to configure kernels less than ~2.6MB required for booting on ancient sparc32 Sun machines, … :-(

Update 2: those apparently also required “special” SCSI CD-ROM drives supporting 512 bytes sized sector reads, as opposed to 2048 sized sectors as used by standard PC drives, ..?