僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
某所で聞いたことがちょっと気になって、
qemu上のbusterにフロッピーデバイスを追加してみた。
フロッピーディスクの容量は、
容量(バイト) = トラックあたりのセクタ数*セクタのバイト数*ディスクのトラック数*ディスクの面数
となるらしい。1.4MBとされるフロッピーディスクは
$ echo '18*512*80*2'|bc 1474560
KB単位なら1440。で、
$ turncate -s 1440K fd0.img
を仮想マシンに割り当てて起動する。
$ dmesg --ctime | grep -i floppy [月 8月 16 14:53:34 2021] Floppy drive(s): fd0 is 1.44M $ lsblk -a NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 1.4M 0 disk loop0 7:0 0 1 loop // $ sudo fdisk -l /dev/fd0 Disk /dev/fd0: 1.4 MiB, 1474560 bytes, 2880 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes $ time sudo mkfs -t ext2 /dev/fd0 mke2fs 1.44.5 (15-Dec-2018) Creating filesystem with 1440 1k blocks and 184 inodes Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done real 0m1.008s user 0m0.008s sys 0m0.000s
マウントして、データをコピーしてみる。
$ sudo mount -v /dev/fd0 /media/temp mount: /dev/fd0 mounted on /media/temp. $ dd if=/dev/urandom of=rand.img bs=1M count=1 1+0 レコード入力 1+0 レコード出力 1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.0327745 s, 32.0 MB/s $ ls -alF rand.img -rw-r--r-- 1 makoto makoto 1048576 8月 16 15:08 rand.img $ time { sudo cp -v rand.img /media/temp/; sudo umount /media/temp ; } 'rand.img' -> '/media/temp/rand.img' real 0m2.214s user 0m0.006s sys 0m0.006s
リアルのフロッピーディスク(USBにあらず)を使った記憶と比べると、 爆速という他はない。
フロッピーディスクにパーティションはできなかったっけ。
$ sudo mkfs -t ext2 /dev/fd0p1 mke2fs 1.44.5 (15-Dec-2018) The file /dev/fd0p1 does not exist and no size was specified.
センサーを口に含んで(触れないように気をつけながら)、 空気圧を加えたり減らしたりしてみた。
$ while :; do sudo python3 py3_bme280_sample.py | grep ^p; sleep 1; done pressure : 1012.11 hPa pressure : 1013.43 hPa pressure : 1057.26 hPa pressure : 1057.27 hPa pressure : 1046.67 hPa pressure : 1069.94 hPa pressure : 1070.46 hPa pressure : 1093.72 hPa pressure : 1085.02 hPa
$ while :; do sudo python3 py3_bme280_sample.py |grep ^p; sleep 1; done pressure : 1012.14 hPa pressure : 1012.17 hPa pressure : 1012.12 hPa pressure : 893.54 hPa pressure : 909.74 hPa pressure : 930.67 hPa pressure : 1012.14 hPa
露出している導体に触れると(わずか感電したような)こうなった。
pressure : 1012.03 hPa Traceback (most recent call last): File "py3_bme280_sample.py", line 138, in <module> setup() File "py3_bme280_sample.py", line 133, in setup writeReg(0xF2,ctrl_hum_reg) File "py3_bme280_sample.py", line 19, in writeReg bus.write_byte_data(i2c_address,reg_address,data) File "/usr/local/lib/python3.7/dist-packages/smbus2/smbus2.py", line 455, in write_byte_data ioctl(self.fd, I2C_SMBUS, msg) OSError: [Errno 121] Remote I/O error pressure : 1012.09 hPa
よく壊れないものだ。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。