トップ «前の日記(2021-08-13(Fri)) 最新 次の日記(2021-08-17(Tue))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2021-08-16(Mon) 昨日はどこにも出なかったけど

仮想マシンのフロッピー

某所で聞いたことがちょっと気になって、 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や内容が変った場合はあしからず。

index.htmlは ここから。